【发布时间】:2013-12-28 15:27:23
【问题描述】:
为所有 cookie 启用 HttpOnly 有什么缺点吗?
如果不是,为什么php.ini中默认没有HttpOnly?
【问题讨论】:
标签: php session cookies session-cookies
为所有 cookie 启用 HttpOnly 有什么缺点吗?
如果不是,为什么php.ini中默认没有HttpOnly?
【问题讨论】:
标签: php session cookies session-cookies
它会阻止您使用 JavaScript 访问 cookie,这是您可能想要做的事情。
此外,默认情况下打开它会破坏与该选项存在之前编写的网站的向后兼容性。
【讨论】:
我怀疑是因为not all browsers support HttpOnly。当然支持changes over time,我无法想象这个理由永远存在。
更新
我检查了session.c 的提交历史记录,并注意到第一次也是唯一一次调用设置默认值是在 2005 年的原始提交中完成的。那时,很多(大多数?)浏览器不支持 HttpOnly。
此设置可以有效帮助减少通过 XSS 进行的身份盗用 攻击(虽然并非所有浏览器都支持)。
强调我的。基于此,在我看来,默认情况下不启用的原因与浏览器支持有关,并且没有人打开票证将其默认设置为启用。
@Quentin 是对的,但鉴于 ZCE 强调安全性,我预计“默认关闭”政策会更好,尽管这会破坏 BC。在功能请求中需要争论的事情。
【讨论】: