2010-04-14 38 views
4

我有一個奇怪的錯誤發生在我的網站上的IE7/XP和IE8/Vista。 IE發送兩個名爲PHPSESSID的cookie。IE發送多個具有相同名稱的cookie?

如何重現:

  1. 在IE清除緩存數據(沒有必要的,如果你從來沒有去過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。

拍攝採樣:


GET/EN/letter_list HTTP/1.1

接受:圖像/ GIF,圖像/ JPEG,圖像/ PJPEG,應用程序/ x-MS-應用,應用/ vnd.ms-xpsdocument,應用/ XAML + xml的,應用程序/ x-MS-XBAP,應用程序/ x-衝擊波閃光,/

的Referer:http://www.unisender.com/en/intro

Accept-Language:ru

User-Agent:Mozilla/4.0(compatible; MSIE 8.0; Windows NT 6.0;三叉戟/ 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)

接受編碼:gzip,放氣

主機:www.unisender.com

連接:保持活動

曲奇: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的 - 沒有什麼幫助。

我想不應該有相同名稱的餅乾。

我對不對?這是IE中的錯誤嗎?如果這是一個錯誤,那麼是否有解決方法?

還是我錯了,這是一個預期的行爲?

回答

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

+0

謝謝。我不確定這是一個好的設計決定,但現在至少可以清楚了。順便提一下,在閱讀這個問題之前,我已經閱讀了所有「cookie內部」頁面。感謝您的網頁。但是我沒有看到那個段落符合我的問題。 – user316603 2010-04-14 20:43:13

+0

在常見問題解答中,它是「Q3:如果我沒有在Cookie中指定DOMAIN屬性,IE會將它發送到所有嵌套子域? – EricLaw 2010-04-17 19:16:41

相關問題