【问题标题】:Browser does not send cookies when cookie is set on a 303 redirect在 303 重定向上设置 cookie 时浏览器不发送 cookie
【发布时间】:2020-07-23 08:04:10
【问题描述】:

当我在 303 See Other 响应中设置 cookie 时,下一个请求(带有重定向到的位置)不包含指定的 cookie。 https://www.rfc-editor.org/rfc/rfc7231#section-6.4.4(在 303 响应中)似乎没有特别提到 cookie。我可以在当前的 Firefox 和当前的 Chrome 上重现该问题。从 Host 标头中可以看出,所有这些都是针对同一来源制作的。

失败

POST /login HTTP/1.1
Host: localhost:22242
HTTP/1.1 200 OK
content-type: text/html
content-length: 694
set-cookie: Authenticating=RrPWNaWsbC013k9QE9zzjJ5C2-c6DKHUnwoKZnL3-knY1aMlxpoGKIm5Kgc
date: Wed, 22 Jul 2020 15:13:14 GMT
POST /mfa/check HTTP/1.1
Host: localhost:22242
Cookie: Authenticating=RrPWNaWsbC013k9QE9zzjJ5C2-c6DKHUnwoKZnL3-knY1aMlxpoGKIm5Kgc
HTTP/1.1 303 See Other
content-length: 0
location: /
set-cookie: Session=k4Bx657138TS2SWdD6KXSxfUy9lddN89HdDOn5_dDLFfvFJwTdEpTGZ_4pw
date: Wed, 22 Jul 2020 15:13:53 GMT
GET / HTTP/1.1
Host: localhost:22242
Cookie: Authenticating=RrPWNaWsbC013k9QE9zzjJ5C2-c6DKHUnwoKZnL3-knY1aMlxpoGKIm5Kgc

为什么后面的请求不发送Session cookie?

作品

POST /login HTTP/1.1
Host: localhost:22242
HTTP/1.1 200 OK
content-type: text/html
content-length: 718
date: Wed, 22 Jul 2020 15:20:41 GMT
POST /mfa/check HTTP/1.1
Host: localhost:22242
HTTP/1.1 303 See Other
location: /
set-cookie: Session=0WGq8q3Z_chLgf6gUSUnPrivqa8jqvOQJRlDnY8XehQhN4QwIjk0FYwXajI
content-length: 0
date: Wed, 22 Jul 2020 15:21:41 GMT
GET / HTTP/1.1
Host: localhost:22242
Cookie: Session=0WGq8q3Z_chLgf6gUSUnPrivqa8jqvOQJRlDnY8XehQhN4QwIjk0FYwXajI

在这个看似相似的情况下,cookie 在 303 重定向后设置正确。

【问题讨论】:

  • 这可能是服务器端问题吗?我有一些网络服务器在重定向时剥离标头的记忆。如果您确定标头已到达,请忽略。
  • 我从浏览器的开发者工具中获得了这些摘录,所以我确信它们会到达 UA。
  • 好吧,所有的重定向都是本地重定向到同一个域,对吧?在您的示例中绝对看起来像它,但想确保这不是SameSiterelated-issue
  • 也遇到过这个问题,但不确定是否有帮助! bugs.chromium.org/p/chromium/issues/detail?id=696204
  • @Evert 感谢您与我一起思考这个问题,毕竟发现了(愚蠢的)问题。

标签: http cookies


【解决方案1】:

这是一个 PEBKAC:我发现这里的问题是 Path 标头中 Path 参数的隐式默认值。 Path 参数默认为当前路径,意味着cookie不会被发送到父路径。

因为我没有过多关注路径,所以我可能有错误的示例请求/响应...我要检查一下这是怎么回事。

【讨论】:

  • 是的,我遇到了同样的问题,将路径显式更改为“/”,为我解决了。
猜你喜欢
  • 2014-08-10
  • 1970-01-01
  • 2014-05-07
  • 2015-06-18
  • 2015-11-20
  • 1970-01-01
  • 2019-03-28
  • 1970-01-01
  • 2019-12-16
相关资源
最近更新 更多