【问题标题】:Setting HttpOnly=true on ASP 1.1 Session ID cookie在 ASP 1.1 会话 ID cookie 上设置 HttpOnly=true
【发布时间】:2012-11-14 13:49:17
【问题描述】:

我有一个客户在 IIS 6.0 下运行他的 Classic ASP 站点。该网站在 ASP.NET 配置选项卡中面向 ASP.NET 2.0。最近对他的站点进行的一次 PCI 扫描使他失败,因为他的 ASPSESSIONID cookie 上有一个 HttpOnly 漏洞。

我已经安装了一个 ISAPI .dll,它成功地在所有手动创建的 cookie 上设置了 HttpOnly,但由于某种原因,ASPSESSIONID cookie 不受此影响。

我已使用以下配置设置 web.config:

<system.web>
    <httpCookies httpOnlyCookies="true" />
</system.web>

这个配置似乎对任何东西都没有任何影响。我怀疑,即使该网站是针对 ASP.NET 2.0 的,它毕竟是一个经典的 ASP 应用程序,根本不支持 HttpOnly。

客户的网站使用global.asa 而不是global.asax。这排除了使用 Application_EndRequest 添加 HttpOnly。

我可以使用 Firefox/Firebug 加载客户端的站点并查看 cookie。那些手动创建的设置了 HttpOnly,但 ASPSESSIONID cookie 不是 HttpOnly。

有谁知道在这种设置场景下如何使 ASPSESSIONID cookie 成为 HttpOnly?

【问题讨论】:

    标签: iis cookies asp-classic iis-6 session-cookies


    【解决方案1】:

    Request.ServerVariables("HTTP_COOKIE") 将获取当前 cookie 值,然后您可以使用更新的 cookie 进行响应,添加 HttpOnly 但唯一的问题是,如果您尝试通过安全扫描,它们通常不会接受cookie 的更新值,只有初始值。

    【讨论】:

      【解决方案2】:

      经典 ASP 代码无法修改 ASP 会话 Cookie,因此对于 IIS 6,您需要让 ISAPI 模块重写 cookie。

      Setting HTTPONLY for Classic Asp Session Cookie

      http://msdn.microsoft.com/en-us/library/ms972826

      客户端 JavaScript 解决方法

      http://ko-lwin.blogspot.com/2010/12/how-to-secure-classic-asp-session-id.html

      【讨论】:

      • 我已经安装了 ISAPI 过滤器来重写 cookie。它成功地将 HttpOnly 添加到手动创建的 cookie,但不影响 ASPSESSIONID cookie。您提供的 2 个链接很棒,但没有提供专门在 ASPSESSIONID cookie 上设置 HttpOnly 的解决方案。
      • @rwkiii 你安装了什么 ISAPI 过滤器?
      • 第二个链接中的那个,大约在“好消息:缓解跨站点脚本问题”页面的一半处。
      • JavaScript 我猜是这样 =( 除非你可以升级到 IIS 7。
      • 这也是一个实时站点。 Javascript 不是我的强项。谢谢肖恩。
      猜你喜欢
      • 2011-02-28
      • 2017-02-04
      • 1970-01-01
      • 2016-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      相关资源
      最近更新 更多