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

我正在管理服务器,一直在考虑为Cookie设置HttpOnly。

虽然我在服务器端和客户端都没有与之交互的cookie,但是是否为所有cookie启用此选项会阻止客户端生成的cookie在后续页面加载时被访问?

为了澄清,这将被设置为服务器选项。
我正在使用Apache,所以这类似于:
Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
在Apache配置中。

此外,问题是基于使用cookie进行数据存储。 LocalStorage不在问题的上下文范围内,即使它是存储纯粹在客户端使用的数据的高级方法。

最佳答案

为所有cookie启用此选项是否会阻止客户端生成的cookie在后续页面加载时被访问?


是。 JS无法访问服务器响应标记为HttpOnly的cookie的值,也无法向其中写入新值。

但是,我还没有发现当JS尝试写一个消息时到底发生了什么,浏览器似乎用本地存储的,只能由客户端脚本访问的,用HTTP发送的消息遮盖了它。虽然我不会依赖此行为,但是写入可能会被忽略。在较旧的浏览器中,似乎存在一些仅HTTP cookie被写入的错误。

但是,无法对所有cookie启用HttpOnly。您必须分别在每个交换的cookie上设置它,因此仅对服务器确实通过该标志发送给客户端的cookie启用此选项。

因此,如果将Apache配置为在所有传出的Cookie上启用该标志,则仍然取决于服务器应用程序是否镜像客户端发送的所有Cookie。通常不会,并且仅发送它确实要设置的cookie(就其本身而言,将在服务器上使用)。

本文翻译自 https://stackoverflow.com/questions/31185405/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 javascript cookies httponly cookie-httponly


相关文章:

javascript - 如何正确使用GraphQLList和GraphQLInterfaceType?

javascript - 如何使用Vanilla JavaScript在点击事件和新页面加载后滚动到元素

javascript - 设置cookie后运行脚本,无需重新加载页面

php - Cookies未删除

html - 可能吗?隐藏基于Cookie的div(创建EU Cookie法律标语)

php - 你如何设置在PHP中使用HttpOnly cookie

javascript - 当将Sitecore 7.2添加到组件区域时,在组件上触发JavaScript

javascript - javascript禁用jsp页面中的文本框

c# - 需要在HttpWebResponse中访问HttpOnly cookie

javascript - 从客户端删除任何会话