samesite=none 和 secure=true 的 cookie 不会从 Chrome 80 开始设置吗?

Will a cookie whose samesite=none and secure=true not set from Chrome 80?

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

这个博客说,"When the SameSite=None attribute is present, an additional Secure attribute must be used so cross-site cookies can only be accessed over HTTPS connections." 这是否意味着 SameSite=None 和 Secure=False 的 cookie 将被 Chrome 拒绝?我们不能设置这样的cookie吗?

我无法那样阅读。

但是,在这篇博客写的测试方式中也表明, 描述说 "it will be rejected".

Cookies without SameSite must be secure

If enabled, cookies without SameSite restrictions must also be Secure. If a cookie without SameSite restrictions is set without the Secure attribute, it will be rejected. This flag only has an effect if "SameSite by default cookies" is also enabled. – Mac, Windows, Linux, Chrome OS, Android

这是正确的行为吗?

正确。如果您要设置 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 并尽可能设置适当的 SameSiteSecure 属性。