gpt4 book ai didi

google-chrome - SameSite cookie、框架、子域和重定向

转载 作者:行者123 更新时间:2023-12-03 18:05:27 25 4
gpt4 key购买 nike

Cookies 的 SameSite 概念绝对是一个难以掌握的概念......

为了准备 Chrome 80 的更改,我正在尝试衡量缺少 SameSite 属性对我的 cookie 的影响。我有以下配置:

  • 用户最初访问 main.mysite.com
  • main.mysite.com 设置 SomeCookie ( Set-Cookie: SomeCookie=value; path=/; secure; httponly ) 并重定向到 auth.mysite.com
  • 用户在 auth.mysite.com 上进行身份验证并重定向回 main.mysite.com(POST 请求)

  • 因为 main.mysite.com 和 auth.mysite.com 之间的重定向被视为同一个站点,并且因为 SameSite 属性的缺失被 Chrome 80 视为 SameSite=Lax,所以这很好用。

    但是,当 main.mysite.com 嵌入在另一个站点(例如 othersite.com)上托管的页面的框架中时,SomeCookie 不会在第 3 步发送回 main.mysite.com:

    Illustration showing what the problem happening

    这是正常的吗?为什么?

    最佳答案

    上面的答案是不正确的......让我澄清一些困惑。

    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 属性是什么意思?

    如果使用 Set-Cookie: cookiename=cookievalue; Domain=mysite.com 设置 cookie,则 cookie 将根据请求发送到任何匹配 *.mysite.com 的域(即所有子域)。

    这是一种调整 cookie 范围的方法。例如,您可以将 Domain=mysite.com 用于您所有域都关心的全局 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。

    希望这可以帮助!您可以引用最新版本的 spec 了解更多详情。

    关于google-chrome - SameSite cookie、框架、子域和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59785832/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com