Chrome中为现有Cookie添加Partitioned属性后出现同名双Cookie问题
问题解答
这是预期行为,并非Chrome版本的问题。
根据CHIPS(Cookies Having Independent Partitioned State)的规范,Partitioned属性是Cookie唯一性判定的核心维度之一。浏览器会将带有Partitioned属性和不带该属性的同名Cookie视为两个完全独立的存储条目,哪怕两者的名称、值、Path、SameSite等其他属性完全一致。
为什么会出现两个Cookie?
在你的复现流程中:
- 第一步设置的是非分区Cookie,浏览器会将其存储在常规Cookie空间中;
- 第二步设置的是分区Cookie,浏览器会将其存储在对应站点的分区存储空间内。
这两个存储空间相互独立,因此会同时存在两个同名同值的Cookie。
如何解决这个问题?
如果需要将现有非分区Cookie迁移为分区Cookie,需先显式删除原有的非分区Cookie,再设置带Partitioned属性的新Cookie:
# 先删除旧的非分区Cookie Set-Cookie: __Host-name=; Secure; Path=/; SameSite=None; Max-Age=0; # 再设置新的分区Cookie Set-Cookie: __Host-name=value; Secure; Path=/; SameSite=None; Partitioned;
这样就能确保旧Cookie被清除,仅保留带Partitioned属性的新Cookie,避免出现重复条目。
内容的提问来源于stack exchange,提问作者Khushboo Shaw
相关产品推荐
相关产品推荐

