何时在您的域上使用非HttpOnly cookie是合适的?

时间:2014-03-18 12:52:05

标签: javascript asp.net cookies httponly

我已阅读OWASP information以及包括Jeff Atwood的Protecting Your Cookies文章在内的一系列文章,我仍然觉得我需要更好地理解HttpOnly cookies。

这是因为我需要向网站添加一些Google Adword tracking code。这个javascript需要在网站的域中设置和读取cookie,我认为这是一个问题。该网站是web.config中带有httpOnlyCookies="true"的.Net应用程序,因此我认为最好的方法是替换javascript并从后端编写cookie以确保生成的cookie是HttpOnly。然后,我可以轻松地在服务器端读取cookie。

据我所知,设置cookie属性的HttpOnly很大程度上可以防止客户端读取和操纵cookie。但我不明白的是:

  • 鉴于上面的例子,我使用javascript实现会出现问题吗?
  • 使用javascript编写cookie是否仍然可以(但仍然使用服务器端读取)?我认为不是因为cookie不是HttpOnly cookie
  • 如果我做了正确的事情(将所有内容转移到服务器端实现),为什么Google Analytic cookie总是以非HttpOnly cookie的形式实现?他们当然也提出了安全问题?

正如标题所说,我猜我想问的是 - 在你的域名上有非HttpOnly cookie的时候(如果有的话)是适当的吗?

2 个答案:

答案 0 :(得分:1)

所以这比我想象的要简单得多。根据@mah上面留下的评论,当cookie包含非敏感信息时,将cookie标记为HttpOnly是多余的。

答案 1 :(得分:0)

httpOnly选项是对窃取用户的会话Cookie 的JavaScript技巧的回应。这是因为会话cookie是一个临时凭证,允许您访问服务器上用户的登录会话。

如果是任何其他非会话cookie,它实际上取决于您自己的风险评估。如果你真的不关心没有httpOnly的曝光率增加,或者你只是需要从JavaScript访问他们的值,那么就忽略这个选项。

某些安全扫描程序或无能力的测试团队会报告每个cookie丢失httpOnly标记,因为它很容易发现并允许它们轻松地夸大其报告。但是,解释httpOnly的实际目的和来源应足以对抗这一点。