首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SameSite="Lax“和SameSite=”严格“有什么区别?

SameSite="Lax“和SameSite=”严格“有什么区别?
EN

Stack Overflow用户
提问于 2020-01-30 16:55:30
回答 3查看 37.7K关注 0票数 79

有人能通过一个很好的例子告诉我SameSite="Lax"SameSite="Strict"之间有什么不同吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-01-30 23:10:24

Lax允许在一些跨站点请求上发送cookie,而严格的从不允许在跨站点请求上发送cookie。

可以跨站点发送松懈cookie的情况必须同时满足以下两种情况:

  1. 请求必须是顶级导航。您可以认为这相当于当URL条中显示的URL发生变化时,例如用户单击链接以转到另一个站点。
  2. 请求方法必须是安全的(例如GET或HEAD,但不是POST)。

例如:

  1. 假设一个用户在site-a.com上,然后点击一个链接到site-b.com。这是一个跨站点请求。这是一个顶级导航,是一个GET请求,所以Lax cookie被发送到site-b.com。但是,没有发送严格的cookie,因为它毕竟是跨站点请求。
  2. 用户在site-a.com上,其中有一个iframe,其中装载了site-b.com。这是跨站点请求,但它不是顶级导航(用户仍然在site-a.com上,也就是说,在加载iframe时,URL栏不会改变)。因此,既不松懈,也不严格的cookie发送到网站-b.com。
  3. 用户在site-a.com上,该网站向site-b.com发布表单。这是跨站点请求,但该方法(POST)不安全。它不符合松cookie跨站点的标准,因此,Lax或严格的cookie都不会发送到site-b.com。
票数 131
EN

Stack Overflow用户

发布于 2020-10-10 05:20:51

一幅画胜过一千个字。下面是我的清晰图表,它总结了您需要了解的关于SameSite属性的所有信息:

请注意,"cookies SameSite=None现在还必须指定安全属性(它们需要一个安全上下文/HTTPS)“

资料来源:来自@chlily的上述答案和谷歌关于SameSite cookie的博客

奖金:从谷歌博客看同一网站和同一来源的区别

票数 28
EN

Stack Overflow用户

发布于 2020-03-27 13:48:47

不允许在跨站点请求或iframe上发送cookie。Lax只允许GET。None不允许所有请求,但需要安全

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59990864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档