我正在管理服务器,并且一直在考虑为我的 cookie 设置 HttpOnly。
虽然我没有在服务器端和客户端交互的任何 cookie,但为所有 cookie 启用此选项是否会阻止客户端生成的 cookie 在后续页面加载时被访问?
澄清一下,这将被设置为服务器选项。
我正在使用 Apache,所以这类似于:
header 编辑 Set-Cookie ^(.*)$ $1;HttpOnly;Secure
在 Apache 配置中。
此外,问题是基于使用 cookie 进行数据存储。 LocalStorage
不在问题的上下文中,即使它是一种优于存储纯粹在客户端使用的数据的方法。
最佳答案
Would enabling this option for all cookies prevent client-side generated cookies from being accessed on subsequent page loads?
是的。 JS 无法访问服务器响应标记为 HttpOnly
的 cookie 的值,也无法向它们写入新值。
尽管如此,我还没有发现当 JS 试图写入一个时到底发生了什么,浏览器似乎用本地存储的一个隐藏了 http 发送的一个,该本地存储的只能由客户端脚本访问。不过,我不会依赖这种行为,写入可能会被忽略。在较旧的浏览器中,似乎存在写入 http-only cookie 的错误。
但是,无法为所有 cookie 启用HttpOnly
。您必须在每个交换的 cookie 上单独设置它,因此该选项只会对服务器使用该标志发送给客户端的那些 cookie 启用。
因此,如果您正在配置 Apache 以在所有传出 cookie 上启用该标志,这仍然取决于您的服务器应用程序是否镜像了客户端发送的所有 cookie。通常它不会,并且只发送它确实想要设置的 cookie(对于它自己,要在服务器上使用)。
关于javascript - 在服务器端的 cookie 上设置 HttpOnly 会影响在浏览器中创建的 cookie 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31185405/