首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cookie自动变成httpOnly

Cookie自动变成httpOnly
EN

Stack Overflow用户
提问于 2019-07-04 13:18:15
回答 1查看 411关注 0票数 0

我在上下文根WebSphere上部署了一个web应用程序。在应用程序中,有一个javascript在加载后立即执行,它看起来如下所示:

代码语言:javascript
复制
document.cookie = "foo=bar; path=/app";

setTimeout(function () {
    document.cookie = "baz=qux; path=/app";
}, 1000);

铬行为

从DevTools中我可以看到,最初foo=bar是以non--httpOnly的形式创建的,1-2秒后它自动变成httpOnly。在等待了大约5秒后(只是为了确保),也创建了第二个cookie,但是在非httpOnly模式下,最后的结果如下所示:

代码语言:javascript
复制
foo=bar (httpOnly=true)
baz=qux (httpOnly=false)

Q1:为什么foo=bar会在一段时间后变成httpOnly?

Q2:为什么这种延迟的饼干创建会产生如此大的差异?

我可以说阈值在700到800毫秒之间,如果我延迟创建低于这个值的cookie,那么它的行为完全是没有延迟的。

Firefox行为

在这里,如果延迟低于阈值(或没有任何setTimeout),它将为每个kay创建2个cookies,值对,例如:

代码语言:javascript
复制
foo=bar; path=/app  (httpOnly=false)
foo=bar; path=/app/ (httpOnly=true)
baz=qux; path=/app  (httpOnly=false)
baz=qux; path=/app/ (httpOnly=true)

在延迟高于阈值的情况下,它不会创建重复cookie (用于baz=qux):

代码语言:javascript
复制
foo=bar; path=/app  (httpOnly=false)
foo=bar; path=/app/ (httpOnly=true)
baz=qux; path=/app  (httpOnly=false)

Q3:更别提为什么FF会在末尾添加斜杠(我听说不同的浏览器处理cookie的方式不同),为什么延迟创建cookie的情况不是这样呢?

我甚至认为应用程序中可能有一段脚本可以在一段时间后“覆盖”非httpOnly cookie到httpOnly one,但我不认为是这样的,因为从控制台执行它不会改变任何事情:

代码语言:javascript
复制
document.cookie="baz=qux; path=/app; HttpOnly"

也就是说,baz=qux仍然是非httpOnly。有些人甚至声称这是不可能

服务器通过响应将cookie重置为httpOnly并不是一件事,我检查了网络视图中的每个请求,并且这些cookie不是来自服务器。

我有一种直觉,认为在这个环境中一定有一些东西,因为我试图用类似的设置创建一个单独的Spring引导项目,而所有的cookie都是非httpOnly的。

有什么想法吗?不幸的是,我不能分享真正的代码。如果有人能至少从理论上解释原因,那将是非常有帮助的。

其他注释:

  • 这不适用于用path=/创建的cookie。
  • Chrome版本: 75.0.3770.100
  • Firefox版本: 67.0.4
  • 我使用的是匿名窗口,没有任何扩展
EN

回答 1

Stack Overflow用户

发布于 2019-07-29 08:17:26

好吧,经过进一步的调查,我想我找到了解释

服务器通过响应将cookie重置为httpOnly并不是一件事,我检查了网络视图中的每个请求,并且这些cookie不是来自服务器。

这并不是完全正确的,显然,WebSphere是用httpOnly标志返回cookie的,这可能是HTTPOnly标志造成的。然而,在Chrome/Firefox DevTools网络视图中并不总是可见。我只记得只有一个案例(在几十个)时,这是可见的。不知道为什么浏览器没有一致地显示它(即使是硬刷新)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56888845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档