3

我已经阅读了OWASP 信息以及一系列文章,包括 Jeff Atwood 的保护您的 Cookie文章,但我仍然觉得我需要更好地理解 HttpOnly cookie。

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

我了解设置 cookie 属性的 HttpOnly 很大程度上可以防止 cookie 被客户端读取和操作。但我不明白的是:

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

所以正如标题所说,我想我要问的是 - 什么时候(如果有的话)在你的域上使用非 HttpOnly cookie 是合适的?

4

2 回答 2

2

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

于 2014-03-25T10:02:17.330 回答
1

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

如果是其他任何非会话 cookie,这实际上取决于您自己的风险评估。如果您并不真正担心在没有 JavaScript 的情况下会稍微增加曝光率,httpOnly或者您只是有业务需要从 JavaScript 访问它们的值,请忽略此选项。

一些安全扫描器或不称职的渗透测试团队会报告httpOnly每个 cookie 的缺失标志,因为它们很容易被发现,并允许他们轻松地夸大他们的报告。但是解释其实际目的和来源httpOnly应该足以反驳这一点。

于 2014-03-19T09:13:43.500 回答