Gyu*_*Fox 8 cookies google-chrome samesite
SameSiteCookies的概念绝对是一个难以掌握的...
为了准备Chrome 80的更改,我正在尝试衡量缺少SameSite属性对我的 cookie 的影响。我有以下配置:
Set-Cookie: SomeCookie=value; path=/; secure; httponly) 并重定向到auth.mysite.com因为main.mysite.com和auth.mysite.com之间的重定向被认为是同一个站点,并且因为Chrome 80将缺少SameSite属性视为SameSite=Lax,所以这很好用。
但是,当main.mysite.com嵌入在另一个站点(例如othersite.com)上托管的页面上的框架中时,SomeCookie不会在第 3 步发送回main.mysite.com:
这是正常的吗?为什么?
chl*_*ily 18
上面的答案是不正确的......让我澄清一些困惑。
1. 就 SameSite 而言,2 个站点何时是“同一站点”?
无论 cookie 的域属性如何,当两个站点的 eTLD+1(也称为可注册域)相同时,它们都被视为相同。有关更详细的解释,请参阅我的答案here。
因此,在这种情况下,假设 eTLD 是“.com”,我们会认为 auth.mysite.com 和 main.mysite.com 是同一个站点,因为 eTLD+1 是两者的 mysite.com。另一方面,anything.mysite.com 和 othersite.com 始终是跨站点的。无论是顶级导航还是子资源请求(如 iframe 中的图像或文档),都是如此。
2. Domain属性是什么意思?
如果 cookie 设置为Set-Cookie: cookiename=cookievalue; Domain=mysite.com,则 cookie 将根据请求发送到任何匹配 *.mysite.com 的域(即所有子域)。
这是一种调整 cookie 范围的方法。例如,您可以将Domain=mysite.com一个全局 cookie 用于您的所有域都关心的全局 cookie,以及Domain=corp.mysite.com一个您公司的所有内部域都关心的 cookie(但不是您的外部域,例如)。
默认(对于未明确设置域属性的 cookie)是仅将 cookie 发送到设置 cookie 的域。(没有子域。)
您不能设置与请求的 URL 不匹配的域属性。
(此外,没有 cookie 的“来源”属性这样的东西。)
3. 那么域与SameSite 有什么关系呢?
没有。它们是独立的 cookie 属性。Domain 不关心同站点/跨站点上下文,SameSite 不关心 cookie 的域/子域范围。
4. 当 mysite.com 嵌入到 othersite.com 的 iframe 中时,为什么不发送 default-Lax cookie?
这被视为跨站点上下文,因为用户 URL 栏中的站点是 othersite.com,而请求是向 mysite.com 发出的,并且它们具有两个不同的 eTLD+1。
因为它在 iframe 中,这不是顶级导航,所以所有跨站点请求都将排除 SameSite cookie。
如果它是顶级导航(用户单击将他们从 othersite.com 带到 mysite.com 的链接),那么请求方法将很重要。在绝大多数情况下,这将是一个 GET 请求,因此将发送Lax 模式下的 cookie 。
希望这可以帮助!您可以参考最新版本的规范以获取更多详细信息。
| 归档时间: |
|
| 查看次数: |
8297 次 |
| 最近记录: |