没有“SameSite”属性的 Cookie 在不同的子域上发送

Gyu*_*Fox 4 cookies google-chrome samesite

所以我已经阅读了Chrome 80 的 cookie 默认为 SameSite=Lax并且像你们其他人一样,我现在正在尝试确定这将对我的网站产生的影响。

我正在运行的站点分为几个子域,每个子域都使用自己的 cookie。它看起来像这样:

  • first-site.domain.com使用Cookie1 ( path=/; secure; httponly)
  • second-site.domain.com使用Cookie2 ( path=/; secure; httponly)

由于这些 cookie 没有指定SameSite属性,它们应该被视为Lax在 Chrome 80 上,因此应该仅限于同站点请求(除非它是顶级导航)。

然后,根据SameSite cookie 的解释

如果用户在your-project.github.io 上并从my-project.github.io请求图像, 这是跨站点请求。

因此,当我启用“SameSite 默认 cookie”和“没有 SameSite 的 Cookie 必须是安全的”标志时,我惊讶地发现当first-site.domain.comsecond-site.domain.com嵌入到框架中时,Cookie2是仍然被发送到second-site.domain.com,这似乎是矛盾的。

我肯定是误会了什么,但此刻,我仍然不解。

注意:我已经验证,当我在anotherdomain.com的框架中嵌入second-site.domain.com时,cookie 不是由浏览器发送的(如预期的那样)。

chl*_*ily 9

如果“domain.com”在公共后缀列表中,则 subdomain1.domain.com 和 subdomain2.domain.com 被视为不同的站点。否则,它们被视为同一个站点。

与 SameSite cookie 相关的“站点”概念是 eTLD+1(有效顶级域 + 1 标签)。有效的顶级域类似于 .com 或 .co.uk 或 .github.io。所有 eTLD 都列在公共后缀列表中。

eTLD+1 是有效的顶级域加上紧邻其左侧的 1 标签。eTLD+1 也称为“可注册域”。直觉是,两个不同的 eTLD+1 由不同的实体控制,而作为同一 eTLD+1 的子域的所有内容都由同一实体控制。比如mysite.github.io和yoursite.github.io是不同的eTLD+1,因为我不能修改你的站点,你也不能修改我的。另一方面,同一家公司同时拥有 subdomain1.domain.com 和 subdomain2.domain.com 并修改了这两个站点。

如果两个域名的 eTLD+1 相同,则就 SameSite cookie 而言,它们被视为同一站点。

  • 因此,这意味着虽然 _your-project.github.io_ 和 _my-project.github.io_ 被视为单独的站点(因为 github.io 是 TLD),但 _first-site.domain.com_ 和 _second-site.domain.com_被视为同一站点(因为 .com 是 TLD)。我对你的理解正确吗? (3认同)