javascript - 在服务器端的 cookie 上设置 HttpOnly 会影响在浏览器中创建的 cookie 吗?

标签 javascript cookies httponly cookie-httponly

我正在管理服务器,并且一直在考虑为我的 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/

相关文章:

Javascript - 编辑类而不是 ID 不起作用/编辑类的高度

javascript - 在没有 cookie 的 Javascript 网页上处理公制到英寸的转换

iis - 使用IIS重写将HttpOnly标志添加到Cookie无效

javascript - 突出显示浏览器(Chrome)中的文本功能,看起来像在 android 中突出显示

javascript - 如何通过单击更改轮廓颜色

perl - WWW::Mechanize 和 Cookie

cookies - _gat (Google Analytics) cookie 的用途是什么?

java - 将 HTTPOnly cookie 与 android 中的其他 cookie 区分开来

.htaccess - 为 Apache httpd 中的每个 Set-Cookie 响应添加 Secure 和 httpOnly 标志

javascript - JS : Using changing String in command after "."