【发布时间】:2015-07-24 03:21:53
【问题描述】:
从文档和this link 中,我已经知道事实是foo.example.com 可以通过在Set-Cookie 标头中发送带有Domain = example.com 的响应来为example.com 设置cookie。但是为什么允许这样做呢?
例如,事实是,服务器(例如,foo.example.com)无法为其兄弟(例如,bar.example.com)或低于它的域名(也称为“它的孩子”,例如, ide.foo.example.com),但它可以为比它更高的域名设置cookie(也称为“它的父母”,在本例中为example.com。
让我把问题的陈述放到现实世界中来更清楚地说明问题。就像 Google App Engine 上的应用程序一样,foo.appspot.com 显然不能为bar.appspot.com 设置 cookie,因为它们是两个不同的应用程序,它们不应该影响彼此的行为。但是为什么允许foo.appspot.com 通过在响应头中发送Domain = appspot.com 来为appspot.com 设置cookie?通过这样做,foo.appspot.com 应用实际上可以影响其他应用在 Google App Engine 上的行为,因为浏览器会在访问 bar.appspot.com(其域名是 appspot.com 的子域名)时发送此 cookie。
我从 Udacity 的 Web 开发课程中学到了所有关于 cookie 的知识。但我真的对这个问题感到困惑。有人可以帮忙解释一下吗?提前致谢。 :-)
【问题讨论】: