gpt4 book ai didi

http - 为什么 foo.example.com 可以为 example.com 设置 cookie?

转载 作者:可可西里 更新时间:2023-11-01 16:42:05 25 4
gpt4 key购买 nike

来自文档和 this link ,我已经知道事实是 foo.example.com 可以通过发送响应 Domain = example.comexample.com 设置 cookie在 Set-Cookie header 中。但为什么允许这样做?

例如,事实是,一个服务器(例如,foo.example.com)不能为其兄弟服务器(例如,bar.example.com)设置 cookie或低于它的域名(也称为“它的 child ”,例如 ide.foo.example.com),但它可以为高于它的域名设置 cookie(也称为“它的 parent ”,在本例中为 example.com

让我把问题放到现实世界中,使问题的陈述更加清楚。就像 Google App Engine 上的应用程序一样,foo.appspot.com 显然不能为 bar.appspot.com 设置 cookie,因为它们是两个不同的应用程序,它们不应该影响彼此的行为。但为什么允许 foo.appspot.com 通过在其响应 header 中发送 Domain = appspot.comappspot.com 设置 cookie ?通过这样做,foo.appspot.com 应用实际上可以影响其他应用在 Google App Engine 上的行为,因为浏览器会在访问 bar.appspot.com 时发送此 cookie ,其域名是 appspot.com 的子域名。

我从 Udacity 的网络开发类(class)中学到了所有这些关于 cookie 的知识。但我真的很困惑这个问题。有人可以帮忙解释一下吗?提前致谢。 :-)

最佳答案

您提供的链接非常过时。太糟糕了,谷歌搜索“cookie 域”的人会第一个找到它。

我应该写一个更好的;但现在,快速回答您的问题 - 这是关于“公共(public)后缀”域的问题。

服务器“example.com”可以为“com”设置 cookie 吗?不,因为“com”是公共(public)后缀。

“foo.co.uk”可以为“co.uk”设置 cookie 吗?不,因为“co.uk”是公共(public)后缀。

碰巧“appspot.com”也是一个公共(public)后缀;所以“foo.appspot.com”不能设置域为“appspot.com”的cookie。 (可以,但是浏览器会拒绝)

遗憾的是,没有算法可以确定哪个是公共(public)后缀。所有公共(public)后缀的列表手动维护在 https://publicsuffix.org/

关于http - 为什么 foo.example.com 可以为 example.com 设置 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30204648/

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