哪个cookie属性唯一标识cookie?

时间:2012-10-16 16:56:13

标签: security http web-applications cookies

我正在尝试确定HTTP服务器返回的cookie覆盖现有cookie而不是设置新cookie的情况。

假设foo.example.com设置了一个cookie:

  

Set-Cookie:SSID = abc;域= .example.com的;路径= / ABC;过期=周三,   20-Jan-2021 22:23:01 GMT;安全;仅Http

bar.example.com需要设置哪些属性才能覆盖此Cookie而不创建新Cookie?特别是,以下响应标头会覆盖原始cookie:

  

Set-Cookie:SSID = xyz;域= .example.com的;到期= 1990年1月13日星期三   格林尼治标准时间22:23:01;

浏览器的行为是否一致?

1 个答案:

答案 0 :(得分:2)

根据RFC 6265

  

如果用户代理收到的cookie具有与其已存储的cookie相同的cookie-name,domain-value和path-value,则现有cookie将被驱逐并替换为新cookie。

此声明在RFC中已超过10年,并且仅在措辞方面略有改变,因此我认为这种行为在所有浏览器中都是一致的。

在您的示例中,两个Cookie具有不同的路径(默认情况下,第二个假定为'/'),因此它们将被视为不同的Cookie。对于来自第一个cookie的路径中的页面,将有两个具有相同名称的cookie,因此它们由浏览器根据RFC进行处理,如下所示:

  

如果多个cookie满足上述条件,则会在Cookie标头中对它们进行排序,以使那些具有更多特定Path属性的Cookie先于具有较少特定属性的那些。