Jus*_*tin 5 cookies subdomain overriding
我有以下域的设置:
mydomain.com
www.mydomain.com
有一个问题(在 Internet Explorer 上测试):如果为 mydomain.com 设置了某个 cookie,那么即使我为 www.mydomain.com 设置了同名的 cookie,该 cookie 对 www.mydomain.com 也有效。
更具体的例子:
1) 用户在网站 mydomain.com 上选择他喜欢的语言,我设置 cookie usrlng=en
2) 第二天,其他人使用同一台计算机,导航到 www.mydomain.com 并选择他的语言,我设置了 usrlng=de。但 Internet Explorer 不断向服务器发送 cookie usrlng=en 和 usrlng=de (我在 Fiddler 中看到了这一点)!为什么它发送相同的 cookie 两次并且不使用子域值覆盖“usrlng”?
同时我看到子域的 PHPSESSID 被正确覆盖,没有两个 PHPSESSID cookie 被发送到服务器。
如何修复 usrlng cookie 并使其以与 PHPSESSID 相同的方式工作?
现在我通过设置cookie的“主机”而不是“域”解决了这个问题;'host' 属性允许将 cookie 限制为 mydomain.com 或 www.mydomain.com。
也许这是唯一的方法,并且“域”不能设置为覆盖顶级域 cookie。