我希望在我的旧版ASP经典网站中实现httpOnly。 谁知道怎么做?
答案 0 :(得分:14)
如果您在IIS 7 / 7.5上运行经典ASP网页,则可以使用IIS URL重写模块编写规则以使您的cookie成为HTTPOnly。
将以下内容粘贴到web.config的部分:
<rewrite>
<outboundRules>
<rule name="Add HttpOnly" preCondition="No HttpOnly">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; HttpOnly" />
<conditions>
</conditions>
</rule>
<preConditions>
<preCondition name="No HttpOnly">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
请参阅此处了解详情:http://forums.iis.net/t/1168473.aspx/1/10
对于后台,出于PCI合规性原因,需要HTTPOnly cookie。 PCI标准人员(用于信用卡安全)使您至少在您的sessionID cookie上拥有HTTPOnly,以帮助防止XSS攻击。
此外,在当前时间(2-11-2013),所有主要浏览器都支持对Cookie的HTTPOnly限制。这包括IE,Firefox,Chrome和Safari的当前版本。
有关如何使用和支持各种浏览器版本的详细信息,请参阅此处: https://www.owasp.org/index.php/HTTPOnly
答案 1 :(得分:11)
Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly"
其他选项如expires
,path
和secure
也可以这种方式添加。我不知道有什么神奇的方法来改变你的整个cookies集合,但我可能错了。
答案 2 :(得分:1)
您需要将“; HttpOnly”附加到Response Cookie集合。
答案 3 :(得分:0)
Response.AddHeader "Set-Cookie", ""&CStr(Request.ServerVariables("HTTP_COOKIE"))&";path=/;HttpOnly"&""
答案 4 :(得分:0)
如果您使用的是IIS7或IIS7.5,并且安装了URL重写加载项,则可以执行此操作。您可以创建一个重写规则,将“ HttpOnly”添加到任何外出的“ Set-Cookie”标头中。将以下内容粘贴到web.config的
致谢,杰里米
<rewrite>
<outboundRules>
<rule name="Add HttpOnly" preCondition="No HttpOnly">
<match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
<action type="Rewrite" value="{R:0}; HttpOnly" />
<conditions>
</conditions>
</rule>
<preConditions>
<preCondition name="No HttpOnly">
<add input="{RESPONSE_Set_Cookie}" pattern="." />
<add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
</preCondition>
</preConditions>
</outboundRules>
</rewrite>
答案 5 :(得分:-3)
HttpOnly在提高Web应用程序安全性方面做得很少。首先,它只适用于IE(Firefox“支持”它,但在某些情况下仍然向Javascript披露cookie)。另一方面,它只能防止针对您的应用程序的“偷渡”攻击;它不会阻止重置密码,更改电子邮件地址或下订单的跨站点脚本攻击。
你应该用吗?当然。这不会伤到你。但是在你开始搞乱HttpOnly之前,你应该确定你要做的10件事情。