【问题标题】:Firefox samesite cookieFirefox 同站 cookie
【发布时间】:2018-06-15 06:45:32
【问题描述】:

已使用 SameSite=Strict 属性设置 cookie。当 Javascript 在发出 XHR 请求之前尝试读取 cookie 时,cookie 似乎不可用。但开发人员工具显示 cookie 存在。此问题仅在最新版本的 Firefox 中发生。不知道我是否遗漏了什么。域和路径在 cookie 上设置正确。

【问题讨论】:

  • 我也有同样的经历。如果我在 cookie 上设置 samesite=lax,它会起作用。然后我可以从js中读取它。但这并不是我真正想要的。我认为同一个站点不应该这样工作。
  • 我创建了这个:bugzilla.mozilla.org/show_bug.cgi?id=1478280 看看他们怎么说。我无法弄清楚为什么它会这样。请注意,如果我在 XHR 请求完成后刷新页面,它会起作用。
  • 我可以确认,当域不是 localhost 时,Firefox 63 不允许 JavaScript 读取使用 SameSite=strict 接收的 cookie。 Chrome 70 工作正常。
  • ...只有当我使用链接导航到页面时才会发生这种情况。如果我打开一个新标签并输入地址,它就可以工作。奇怪的东西……

标签: firefox cookies samesite


【解决方案1】:

显然,这取决于您如何到达执行 XHR 请求的页面。如果您通过单击另一个网站上的链接(例如,点击您的网络邮件客户端上的链接)到达那里,则 Strict cookie 将不可用,即使在随后的 XHR 请求中也是如此!这种行为在 Firefox 中似乎与在其他浏览器中不同。

您可以在此处找到更多信息:https://www.netsparker.com/blog/web-security/same-site-cookie-attribute-prevent-cross-site-request-forgery/

【讨论】:

  • 这似乎也发生在 Safari 中
【解决方案2】:

我还是不知道为什么,我认为是firefox的行为,我通过使用location.replace("")重新加载页面来解决这个问题,但你也可以使用“lax”或“none”来解决这个问题。

【讨论】:

    猜你喜欢
    • 2020-12-16
    • 2010-10-21
    • 1970-01-01
    • 2019-02-16
    • 2020-02-07
    • 1970-01-01
    • 2019-08-28
    • 2021-06-19
    相关资源
    最近更新 更多