【发布时间】:2013-02-13 11:39:45
【问题描述】:
IE10 处理 cookie 和子域的方式似乎与其他主流浏览器(IE8、IE9、Firefox、Chrome、Safari)不同。
我们将子域广泛用于测试环境,例如:
- user1.devel.example.com
- user2.devel.example.com
- qa.example.com
我们的生产环境位于顶层,例如example.com(在技术上也是 www.example.com)。
我们天真地使用 php setcookie($name, $value, $expires) 函数(未指定显式路径或域)设置 cookie,然后通过为该值分配一个空字符串来清除 cookie(当用户注销时)。这一直运行良好,每个独特的子域都使用自己的 cookie。
IE10 现在与所有子域“共享”在 TLD 中设置的 cookie。 我们观察到的最初症状是没有人可以退出子域。我们观察到一些事情:
- 即使共享值,也没有子域能够清除 cookie。
- 当 TLD 清除 cookie 时,它也会立即从所有子域中删除。
是否有其他人观察到与 IE10 如何存储/应用相对于子域的 cookie 的类似行为?除了在发送初始 Set-Cookie 标头时明确说明 cookie 适用于哪个域之外,是否有任何解决方法?
【问题讨论】:
-
我遇到了 IE10 和 cookie 的问题。不知道你的问题是不是一样。有关我的问题的更多信息,请参见此处:stackoverflow.com/questions/15856886/…
-
这种行为在 IE8 和 IE9 中也存在。
标签: php internet-explorer web-applications cookies