将 Same-Site cookie 属性设置为 Lax

信息安全 饼干 csrf 同站点cookies
2021-09-06 03:25:21

Same-Site将cookie 的属性设置Lax为与根本不设置相同吗?如果有差异,它们是什么?

3个回答

将 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 开始可用。

还可以查看RFC 草案和 Sjoerd 的博客文章

这目前在 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 将忽略它。

https://www.chromestatus.com/feature/5088147346030592