當有多個對當前域有效的相同名稱和路徑的Cookie時,我對各種瀏覽器的行爲感興趣。例如。在瀏覽器中存儲這兩個餅乾:具有相同名稱/路徑的多個Cookie的瀏覽器行爲
key=value; path=/; domain=foo.bar.baz
key=value; path=/; domain=bar.baz
會是怎樣的Cookie
頭當用戶訪問foo.bar.baz
的內容?
RFC 2965有此說關於這個問題:
如果多個cookie滿足以上,他們在 是有序的Cookie頭,使得那些有更具體的路徑屬性 先於那些不太具體的標準。關於其他 屬性(例如,域)的排序未指定。
(這是一個非常奇怪的設計選擇,但這就是我們所擁有的)。我想服務器端框架使用第一個值,因爲至少有時更具體(我檢查了PHP,它確實如此)。
我想知道的是主要瀏覽器的行爲:他們首先發送哪個cookie? (換句話說,有多少我可以靠我的申請得到了「正確」的,更具體的價值?)
我認爲,不管目前的任何瀏覽器的行爲,你都不能依賴這樣的自sta以來的一個經驗回答ndard說「未指定」,任何瀏覽器/任何版本都可以隨時改變這種行爲... – Yahia
這不是真正的依賴,更多的是爲了防禦它......這可能會導致同一父域中的兩個站點改變彼此的行爲不可預知的方式。 (這就是我發現它的實際情況,兩個網站都使用了PHPSESSID cookie,並且人們被莫名其妙地註銷了。) – Tgr
不確定我明白...你想基於一個經驗豐富的答案來防禦「未定義的行爲」(基於標準),只要一個新的瀏覽器補丁或版本出現,它就會過時/不完整。你將如何防守,你將如何保持你的防守up2date? – Yahia