深入解析 Web 应用中的 CHIPS(Partitioned Cookie Attribute)

深入解析 Web 应用中的 CHIPS(Partitioned Cookie Attribute)

最新发现flask3.1.0 的版本引入了新的特性:对CHIPS的支持。不少同学对这个可能有点陌生,本文带大家了解一下。

为了在隐私保护和功能需求之间取得平衡,Google 推出了 CHIPS(Cookies Having Independent Partitioned State) 标准。它通过引入 Partitioned Cookie Attribute,允许跨站点环境下的独立 Cookie 存储,为特定场景提供隐私友好的解决方案。


一、CHIPS 的起源

传统的 Cookie 存储机制包括 第一方 Cookie第三方 Cookie

  • 第一方 Cookie:由用户访问的站点设置,用于会话管理、用户偏好等。
  • 第三方 Cookie:由嵌入到站点中的第三方资源(如广告或分析脚本)设置,用于跨站跟踪。

由于隐私问题,浏览器开始逐步限制第三方 Cookie。例如:

  • Safari 的 Intelligent Tracking Prevention (ITP)
  • Firefox 的 Enhanced Tracking Protection (ETP)
  • Chrome 的计划(Privacy Sandbox)将逐步淘汰第三方 Cookie。

然而,限制第三方 Cookie 会导致某些合法的跨站点功能失效,例如嵌入式服务的会话保持。为了满足这些场景的需求,CHIPS 应运而生。


二、CHIPS 的目的

CHIPS 的主要目标是为跨站点环境下的 Cookie 存储提供一种隐私友好的解决方案:

  1. 隐私保护:通过分区存储,避免第三方 Cookie 被用于跨站追踪。
  2. 功能性支持:允许跨站点场景(如嵌入式内容)拥有独立的 Cookie 存储,不受其他站点的干扰。
  3. 兼容性:减少浏览器对传统跨站点功能的影响,确保用户体验。

三、CHIPS 的设计

CHIPS 的核心设计是引入了 Partitioned 属性,用于定义 Cookie 的存储隔离规则:

1. 分区机制

  • 在跨站点请求中,浏览器为每个 Top-Level Origin(顶级站点)Embedded Origin(嵌入站点) 创建独立的 Cookie 分区。
  • 分区的关键由 (Top-Level Origin, Embedded Origin) 组成。例如:
    • 用户在 example.com 页面嵌入了 iframe.analytics.com
    • 分区后,analytics.comexample.com 中的 Cookie 不会与 analytics.com 在其他站点的 Cookie 冲突。

2. Partitioned 属性

CHIPS 的关键属性是 Partitioned,它必须与 SameSite=None; Secure 一起使用。示例:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

smith成长之旅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值