IE发送多个同名的cookie?

时间:2010-04-14 14:47:33

标签: internet-explorer cookies

我的网站上的IE7 / XP和IE8 / Vista中发生了一个奇怪的错误。 IE发送两个名为PHPSESSID的cookie。

如何重现:

  1. 在IE中清除Cookie(如果您从未访问过unisender.com,则不需要)。

  2. 访问unisender.com(完全没有www重现!),它将重定向到www.unisender.com

  3. 使用任何有效的用户名和密码登录(我已注册用户名testmsdn,密码为testmsdn - 随时可用于测试)

  4. 运行您最喜爱的捕获流量计划(我更喜欢wireshark)

  5. 现在点击任何菜单链接(例如“消息”)

  6. 查看捕获的流量 - 您将看到IE发送双PHPSESSID cookie(因此,您在点击后退出)。似乎第一个PHPSESSID来自unisender.com,第二个来自www.unisender.com。

  7. 捕获的样本:


    GET / en / letter_list HTTP / 1.1

    接受:image / gif,image / jpeg,image / pjpeg,application / x-ms-application,application / vnd.ms-xpsdocument,application / xaml + xml,application / x-ms-xbap,application / x -shockwave-flash, /

    参考者:http://www.unisender.com/en/intro

    接受语言:ru

    User-Agent:Mozilla / 4.0(兼容; MSIE 8.0; Windows NT 6.0; Trident / 4.0; Mozilla / 4.0(兼容; MSIE 6.0; Windows NT 5.1; SV1); SLCC1; .NET CLR 2.0.50727 ;. NET CLR 3.5.21022; .NET CLR 3.5.30729; FDM; .NET CLR 3.0.30729)

    Accept-Encoding:gzip,deflate

    主持人:www.unisender.com

    连接:Keep-Alive

    Cookie:authchallenge = 3a9cfcfc9fe33822e3e21d75c8a3d3e4; PHPSESSID = 14ea1cb133632951592397c86eaf037e; us_reg_ref =未知; us_reg_url = HTTP%3A%2F%2Funisender.com%2F; __utma = 1.778517853.1271204400.1271204400.1271204400.1; __utmb = 1.3.10.1271204400; __utmc = 1; __utmz = 1.1271204400.1.1.utmcsr =(直接)| utmccn =(直接)| utmcmd =(无); PHPSESSID = 65e110aeb995a66b9dc8da5656c7a3da; last_login_name = testmsdn


    我尝试过使用会话和非会话cookie,尝试使用.unisender.com代替unisender.com获取cookie - 没有任何帮助。

    我想不应该有同名的cookie。

    我是对的吗?这是IE中的错误吗?如果它是一个错误,那么有一个解决方法吗?

    或者我错了,这是预期的行为?

1 个答案:

答案 0 :(得分:3)

这是按设计的。

您应该不为您网站的“www-less”版本发送cookie,或者您的站点的两个版本都应在PHP会话cookie上设置“domain = example.com”属性。

否则,这些cookie实际上并不相同,因此您将被发送两个。 http://blogs.msdn.com/ieinternals/archive/2009/08/20/WinINET-IE-Cookie-Internals-FAQ.aspx