【问题标题】:How do HTTP redirect requests send cookies?HTTP 重定向请求如何发送 cookie?
【发布时间】:2021-08-20 12:07:17
【问题描述】:

假设我的 cookie 罐中有 cookie a1a2,它们的域是“.a.com”。

我访问“https://a.com?redirect=https://b.com”。原始HTTP请求带有Cookie header:a1=123; a2=456

当它重定向到“https://b.com”时:

  1. 是否应该转发Cookie 标头:a1=123; a2=456?取决于SameSite 属性?
  2. 如果我的 cookie jar 中有 cookie b1b2 并且它们的域是“.b.com”,是否应该提取它们并附加到重定向请求的 Cookie 标头?
  3. 如果 1 和 2 的答案都是肯定的,如果我还有另一个域为“.b.com”的a1 cookie 怎么办?它应该替换Cookie 标头中范围为“.a.com”的那个吗?

它是否在某些规范中定义?

【问题讨论】:

  • 原来是WebKit的bug。否则,Cookie 标头不会在重定向中转发。

标签: http cookies


【解决方案1】:

Cookie 是特定于域的。当浏览器重定向到“b.com”时,不会发送来自“a.com”的 cookie a1a2。当您的浏览器遵循重定向时,对“b.com”的 GET 请求中包含的唯一 cookie 将是您已经从“b.com”域(b1b2)获得的那些。

这与 cookie 相对较新的 SameSite 属性是分开的,后者有助于控制浏览器在跨站点请求期间发送 cookie 的方式(例如,来自您站点的图像嵌入到另一个站点)。我遇到的关于SameSite 属性的最佳解释是:https://web.dev/samesite-cookies-explained/

【讨论】:

    猜你喜欢
    • 2013-06-08
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 2016-03-15
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2020-08-04
    相关资源
    最近更新 更多