2008-09-10 212 views

回答

11
Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly" 

expirespathsecure其他选项也可以添加这样。我不知道有任何不可思议的方式来更改您的整个Cookie收集,但我可能是错误的。

1

您需要将“; HttpOnly”附加到响应cookie集合中。

+3

目前尚不清楚,一些代码将是巨大的 – 2008-09-11 14:42:19

-1

HttpOnly对提高Web应用程序的安全性做的很少。首先,它只适用于IE(Firefox“支持”它,但在某些情况下仍然向Javascript发布cookie)。另一方面,它只能防止对您的应用程序进行“驱车”攻击;它不会因重置密码,更改电子邮件地址或下订单而导致跨站点脚本攻击。

你应该使用它吗?当然。这不会伤害你。但在你开始搞乱HttpOnly之前,你应该确定你有10件事。

+1

是的,我知道。但增加一层保护从不会伤害。 – 2009-05-28 14:09:05

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

为背景,中HTTPOnly Cookie是必需的PCI合规性的原因。 PCI标准人员(用于信用卡安全性)使您至少对会话ID cookie有HTTPOnly,以帮助防止XSS攻击。

此外,在当前时间(2013年2月11日),所有主流浏览器都支持cookie的HTTPOnly限制。这包括当前版本的IE,Firefox,Chrome和Safari。

在这里看到这是如何工作的更多信息,并支持各种浏览器版本: https://www.owasp.org/index.php/HTTPOnly

0
Response.AddHeader "Set-Cookie", ""&CStr(Request.ServerVariables("HTTP_COOKIE"))&";path=/;HttpOnly"&""