【问题标题】:Is there any reason not to use HttpOnly for all cookies?有什么理由不对所有 cookie 使用 HttpOnly 吗?
【发布时间】:2013-12-28 15:27:23
【问题描述】:

为所有 cookie 启用 HttpOnly 有什么缺点吗?

如果不是,为什么php.ini中默认没有HttpOnly?

【问题讨论】:

    标签: php session cookies session-cookies


    【解决方案1】:

    它会阻止您使用 JavaScript 访问 cookie,这是您可能想要做的事情。

    此外,默认情况下打开它会破坏与该选项存在之前编写的网站的向后兼容性。

    【讨论】:

    • 但是允许 cookie 被 JavaScript 访问不是一个很大的安全漏洞吗?为什么会有人允许?
    • 这本身不是安全漏洞;如果您在代码的其他部分存在 XSS 漏洞,它只会使您面临更大的后果。一个网站可能想用 JavaScript 操作它自己的 cookie。
    【解决方案2】:

    我怀疑是因为not all browsers support HttpOnly。当然支持changes over time,我无法想象这个理由永远存在。

    更新
    我检查了session.c 的提交历史记录,并注意到第一次也是唯一一次调用设置默认值是在 2005 年的原始提交中完成的。那时,很多(大多数?)浏览器不支持 HttpOnly。

    另外,the docs on httponly say

    此设置可以有效帮助减少通过 XSS 进行的身份盗用 攻击(虽然并非所有浏览器都支持)。

    强调我的。基于此,在我看来,默认情况下不启用的原因与浏览器支持有关,并且没有人打开票证将其默认设置为启用。

    @Quentin 是对的,但鉴于 ZCE 强调安全性,我预计“默认关闭”政策会更好,尽管这会破坏 BC。在功能请求中需要争论的事情。

    【讨论】:

      猜你喜欢
      • 2021-08-01
      • 2012-03-31
      • 1970-01-01
      • 2017-07-21
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 2016-03-25
      • 2018-06-15
      相关资源
      最近更新 更多