当有多个对当前域有效的相同名称和路径的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