上海专业做网站排名,中国建设银行湖南分行官网站,江津网站建设效果好不好,毕业设计做网站做什么好深入解析 Web 应用中的 CHIPS#xff08;Partitioned Cookie Attribute#xff09; 最新发现flask3.1.0 的版本引入了新的特性#xff1a;对CHIPS的支持。不少同学对这个可能有点陌生#xff0c;本文带大家了解一下。 为了在隐私保护和功能需求之间取得平衡#xff0c;Goo…深入解析 Web 应用中的 CHIPSPartitioned Cookie Attribute 最新发现flask3.1.0 的版本引入了新的特性对CHIPS的支持。不少同学对这个可能有点陌生本文带大家了解一下。 为了在隐私保护和功能需求之间取得平衡Google 推出了 CHIPSCookies 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 存储提供一种隐私友好的解决方案
隐私保护通过分区存储避免第三方 Cookie 被用于跨站追踪。功能性支持允许跨站点场景如嵌入式内容拥有独立的 Cookie 存储不受其他站点的干扰。兼容性减少浏览器对传统跨站点功能的影响确保用户体验。 三、CHIPS 的设计
CHIPS 的核心设计是引入了 Partitioned 属性用于定义 Cookie 的存储隔离规则
1. 分区机制
在跨站点请求中浏览器为每个 Top-Level Origin顶级站点 和 Embedded Origin嵌入站点 创建独立的 Cookie 分区。分区的关键由 (Top-Level Origin, Embedded Origin) 组成。例如 用户在 example.com 页面嵌入了 iframe.analytics.com。分区后analytics.com 在 example.com 中的 Cookie 不会与 analytics.com 在其他站点的 Cookie 冲突。
2. Partitioned 属性
CHIPS 的关键属性是 Partitioned它必须与 SameSiteNone; Secure 一起使用。示例
Set-Cookie: user_sessionabc123; Path/; Secure; SameSiteNone; PartitionedSecure必须通过 HTTPS 设置。SameSiteNone允许跨站点访问。Partitioned指定 Cookie 为分区 Cookie。 四、CHIPS 的工作原理 设置 Partitioned Cookie 在 HTTP 响应头中返回带有 Partitioned 属性的 Cookie。浏览器将为特定的 (Top-Level Origin, Embedded Origin) 创建独立的 Cookie 存储。 存储和检索 当用户访问 example.com 页面嵌入的 iframe.analytics.com 会使用其自己的 Cookie 分区。即使用户访问其他顶级站点如 another.com也嵌入了 iframe.analytics.com它的 Cookie 状态是独立的。 隐私保证 Cookie 的分区存储仅限于当前顶级站点上下文无法用于跨站追踪。 五、CHIPS 的实际应用
1. 嵌入式第三方服务
场景嵌入到站点的第三方支付、聊天工具等需要维持用户的会话状态但不能访问其他站点的用户信息。
2. 广告网络优化
广告平台可以为每个顶级站点独立存储用户的点击数据避免与其他站点数据混合。
3. 分析工具
像 Google Analytics 这样的工具可以使用 Partitioned Cookie 来跟踪同一顶级站点内的用户活动同时避免跨站点的隐私问题。 六、如何在后端使用 CHIPS
以下是使用 Python 的 Web 框架Flask 和 Django的示例展示如何在后端设置 Partitioned Cookie。
1. Flask 示例
from flask import Flask, make_responseapp Flask(__name__)app.route(/)
def set_cookie():response make_response(Partitioned Cookie Set!)# 设置 Partitioned Cookieresponse.set_cookie(user_session, abc123, path/, secureTrue, samesiteNone, httponlyTrue)response.headers.add(Set-Cookie, user_sessionabc123; Path/; Secure; SameSiteNone; Partitioned)return responseif __name__ __main__:app.run(ssl_contextadhoc)2. Django 示例
from django.http import HttpResponsedef set_cookie(request):response HttpResponse(Partitioned Cookie Set!)response.set_cookie(user_session,abc123,path/,secureTrue,samesiteNone,httponlyTrue)# 手动添加 Partitioned 属性response[Set-Cookie] user_sessionabc123; Path/; Secure; SameSiteNone; Partitionedreturn response七、如何在前端使用 CHIPS
前端开发者需要确保以下几点
确保通过 HTTPS 加载页面和嵌入内容Secure 属性要求 Cookie 只能通过 HTTPS 传输。正确配置 SameSite 属性必须设置为 SameSiteNone。加载 iframe 或嵌入资源时传递 Cookie 使用 iframe 标签时需指定 allow 属性iframe srchttps://analytics.com allowpartitioned-cookies/iframe或在 fetch 请求中指定 credentials: includefetch(https://analytics.com/data, {credentials: include
});八、CHIPS 的优势与局限性
优势
隐私友好解决了跨站点 Cookie 滥用问题。支持合法跨站场景如嵌入式服务、支付网关等。与现代隐私政策兼容符合 GDPR 等隐私法规的要求。
局限性
浏览器兼容性目前仅部分现代浏览器支持 CHIPS。复杂性增加开发者需要额外配置 Cookie 和跨站请求。 九、总结
CHIPS 提供了一种隐私友好的跨站点 Cookie 管理方式通过分区存储解决了传统第三方 Cookie 的隐私问题。在 Web 应用中开发者可以通过后端设置带有 Partitioned 属性的 Cookie并在前端正确传递和管理这些 Cookie实现安全可靠的跨站功能。
随着 Web 隐私标准的不断演进CHIPS 将成为构建现代 Web 应用的关键工具之一。如果你的应用需要支持跨站场景赶快尝试使用 CHIPS 优化隐私和功能吧