我有一个客户端在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?
答案 0 :(得分:1)
经典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
答案 1 :(得分:0)
Request.ServerVariables(“HTTP_COOKIE”)将获取当前cookie值,然后您可以使用更新的cookie进行响应,添加HttpOnly,但只有问题是如果您尝试通过安全扫描,他们通常不会cookie的更新值,仅为初始值。