【问题标题】:Will a cookie whose samesite=none and secure=true not set from Chrome 80?是否不会从 Chrome 80 设置 samesite=none 和 secure=true 的 cookie?
【发布时间】:2020-03-09 19:28:23
【问题描述】:

我知道关于 cookie 的行为是从 chrome 80 更改的。
https://blog.chromium.org/2019/10/developers-get-ready-for-new.html

此博客说,“当 SameSite=None 属性存在时,必须使用额外的 Secure 属性,因此只能通过 HTTPS 连接访问跨站点 cookie。” 这是否意味着 SameSite=None 和 Secure=False 的 cookie 将被 Chrome 拒绝?我们不能设置这样的cookie吗?

我不能那样读。

但是,在这篇博客中写的测试方式中也表明, 描述说“它将被拒绝”。

没有 SameSite 的 Cookie 必须是安全的

如果启用,没有 SameSite 限制的 cookie 也必须是安全的。 如果一个没有 SameSite 限制的 cookie 设置为没有 Secure 属性,它将被拒绝。此标志仅在以下情况下有效 “SameSite 默认 cookie”也已启用。 – Mac、Windows、Linux、 Chrome 操作系统、安卓

这是正确的行为吗?

【问题讨论】:

    标签: google-chrome cookies samesite


    【解决方案1】:

    正确。如果您设置SameSite=None,它必须始终为Secure。如果不设置Secure,cookie会被拒绝。

    Chrome 为早期测试提供了两个标志:

    • chrome://flags/#same-site-by-default-cookies - 此标志会将没有 SameSite 属性的 cookie 视为具有 SameSite=Lax 属性。
    • chrome://flags/#cookies-without-same-site-must-be-secure - 此标志将导致带有 SameSite=None 但缺少 Secure 的 cookie 被拒绝。

    虽然从 Chrome 实施的角度来看,这是两个独立的更改,但开发人员应该将其视为一个更改。查看现有 cookie 并尽可能设置适当的 SameSite 和 Secure 属性。

    【讨论】:

    • 感谢您的回答。我明白了。
    • 这是否会影响所有 cookie,无论是第一方 cookie 还是第三方 cookie?
    • cookie 是第一方还是第三方仅取决于请求的上下文。当 cookie 设置为 SameSite=None; Secure 时,它将在同站点(第一方)和跨站点(第三方)请求中发送。
    • @rowan_m 正如你所建议的那样,我已经更新了我的 cookie 以具有标志 SameSite=None;安全的。似乎自从某些计算机上的最后一次 chrome 更新(相同的 chrome 版本)以来,它将 cookie 保存为same-site connections only。你熟悉这个问题吗?
    • 这在 Safari 中不起作用 samesite=None 在 safari 最新版本中也被视为 SameSite = strict 你们有什么解决方案吗?我无法更改浏览器设置我必须使用 safari 的默认设置执行任务。
    猜你喜欢
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-03
    • 2020-11-01
    • 1970-01-01
    • 2021-09-03
    • 2020-05-17
    相关资源
    最近更新 更多