无法在 Chrome 中使用 JavaScript 删除分区 cookie (CHIPS)

问题描述 投票:0回答:1

由于第三方 cookie 弃用,我相应地更新了我的应用程序的一些 cookie,以便使用 CHIPS 进行“分区”。

以我为例,受影响的 cookie 是使用 JavaScript 设置的,如下所示:

function setPartitionedCookie() {
  document.cookie =
    "cookie=delicious; Max-Age=86400; Path=/; Secure; SameSite=None; Partitioned;";
}

我正在尝试通过将过期日期(

Expires
属性)设置为过去的日期来使用JavaScript删除此cookie,正如Stack Overflow上的各种问题中所建议的那样,请参阅例如“使用JavaScript清除所有cookie” .
不幸的是,如果没有指定 Secure
Partitioned
 属性
,这
不适用于分区 cookie,至少在 Chrome 版本 123 中是这样:

function deletePartitionedCookie() {
  /* "Secure" and "Partitioned" attributes are required to delete the partitioned cookie in Chrome */
  // document.cookie = "cookie=; Expires=Thu, 01 Jan 1970 00:00:00 UTC; Secure; Partitioned;"; // this does work in Chrome

  document.cookie = "cookie=; Expires=Thu, 01 Jan 1970 00:00:00 UTC;"; // this does not work in Chrome
}

“无法从javascript中删除cookie”的答案中,我发现有时还需要设置相应的

Path
Domain
属性。但是,没有解释为什么以及在什么情况下需要这样做。

此行为是设计使然,还是有规范?这可能是 Chrome 中的一个错误吗?
删除“分区cookies”的正确方法是什么?

由于 Firefox 和 Safari 不支持

Partitioned
属性,因此这还不是 的问题。我还没有机会测试 Edge 中的行为。


我不确定代码片段中的示例是否有效,所以我创建了这个 Glitch 来测试它:
https://delete-partitioned-cookies.glitch.me/

javascript cookies third-party-cookies chips
1个回答
0
投票

删除分区 Cookie 需要主机密钥和分区密钥来映射到正确的 Cookie,因此需要

Partition
Secure
标签来删除它

© www.soinside.com 2019 - 2024. All rights reserved.