在IE7中有两个同名的cookie时该怎么办?

Jon*_*ler 4 cookies internet-explorer cakephp swfupload

一些背景:

CakePHP除了PHPSESSID之外还编写了自己的会话ID cookie.这用于验证请求.然后SWFupload发送一个文件,该令牌进行身份验证,并被选为新的用户代理 - 因此在cakephp中,您必须禁用"check-user-agent"安全功能.

在许多浏览器上这已经足够了.IE7版本和SWF版本似乎没有与此错误相关联.在我们的例子中,IE7存储/发送相同cookie的两个版本.所以第一个问题是为什么?怎么样?

进一步说明:

因为这些重复的cookie存储在头字符串的开头和结尾,所以PHP/Cake接收到一端,如果它是一个欺骗,所以它"选择"一个,我设置并在swfobject中发送的手动cookie是另一个cookie.我可以想到几个黑客来解决这个问题 - 但我真的想知道这种情况最初是如何产生的.

CakePHP似乎也没有在注销和登录时生成唯一的CakeSession ID,这可能是原因,解决方案可能是强制蛋糕在任何地方使用PHPSESSID,或者可能只是为了确保swfupload发送正确的SESSID ...

编辑一:CakePHP发送的cookie标头是:

Set-Cookie: CAKEPHP=gqlpa88blmhmdsmv9e99ga16b3; expires=Thu, 13-Aug-2009 13:21:02 GMT; path=/
Set-Cookie: CAKEPHP=deleted; expires=Wed, 06-Aug-2008 13:21:01 GMT; path=/
Set-Cookie: CAKEPHP=ob5695trnspprlohiunrpqgkm0; expires=Thu, 13-Aug-2009 13:21:02 GMT; path=/
Run Code Online (Sandbox Code Playgroud)

欢迎任何想法!

Eri*_*Law 7

如果为不同的域或路径设置了两个cookie,则它们可能具有相同的名称.

例如,如果您在"www.example.com"和"example.com"上设置了Cookie"ID",那么对于"www.example.com"或"任何内容"的每个请求,都会发送两个ID Cookie. www.example.com".

为了防止这种情况发生,请确保您始终为同一个域设置Cookie,如果您碰巧有多个域名别名到同一服务器(例如www.example.com和example.com),那么请将一个域名重定向到另一个域.

同样,请勿使用不同的路径值设置同名的cookie.


Atm*_*ons 5

据我记得,如果您设置一个已经存在的 cookie,它只会覆盖旧 cookie 的值和到期日期......这是每个域的。意味着您可以在 / 和 /anything 下有 2 个同名的 cookie,并且它们不会互相覆盖。

cookie 的名称在其站点内是唯一的。至少在标准上。不知道IE7是否也遵循这个。

或者这不是你要问的?

问候