Same-Site
将cookie 的属性设置Lax
为与根本不设置相同吗?如果有差异,它们是什么?
将 Same-Site cookie 属性设置为 Lax
将 cookie 的 Same-Site 属性设置为 lax 是否与不设置 Same-Site 属性相同?
在谷歌浏览器 < 76 - 没有。设置SameSite=lax
比省略属性更安全。(但如果您的实现当前依赖于跨域请求,请仔细检查添加属性是否不会破坏任何内容。)
以下是不同之处:
如果您不设置该
SameSite
属性,则始终发送 cookie。使用
SameSite=lax
,cookie 仅在同站点请求或使用安全 HTTP 方法的顶级导航时发送。也就是说,它不会随跨域POST
请求或在跨域框架中加载站点时发送,但会在您通过标准顶级<a href=...>
链接导航到站点时发送。使用
SameSite=strict
(或无效值)时,cookie 永远不会在跨站点请求中发送。即使单击第三方域上的顶级链接到您的站点,浏览器也会拒绝发送 cookie。
从 Chrome 76 开始,您的浏览器可以选择不做任何SameSite
行为Samesite=Lax
。这将是Chrome 80 中的默认设置。从功能描述:
Chrome 80 的稳定版旨在默认启用此功能。该功能仅在 Beta 版本中启用,从 Chrome 78 开始。通过启用 same-site-by-default-cookies 标志,该功能从 Chrome 76 开始可用。
这目前在 Chrome 中已更改 - 这意味着不设置 SameSite 实际上被视为 LAX。
https://blog.chromium.org/2019/05/improving-privacy-and-security-on-web.html
Chrome 最近SameSite=Lax
默认实现了ifSameSite=None
没有明确指定。
此外,Secure
指定时必须设置属性SameSite=None
,否则 Chrome 将忽略它。