2

我有一个客户在 IIS 6.0 下运行他的经典 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。

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

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

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

4

2 回答 2

1

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

为经典 Asp 会话 Cookie 设置 HTTPONLY

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

客户端 JavaScript 解决方法

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

于 2012-11-27T03:08:46.607 回答
0

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

于 2013-07-20T00:55:59.493 回答