跳转到主要内容

标签(标签)

资源精选(342) Go开发(108) Go语言(103) Go(99) angular(82) LLM(75) 大语言模型(63) 人工智能(53) 前端开发(50) LangChain(43) golang(43) 机器学习(39) Go工程师(38) Go程序员(38) Go开发者(36) React(33) Go基础(29) Python(24) Vue(22) Web开发(20) Web技术(19) 精选资源(19) 深度学习(19) Java(18) ChatGTP(17) Cookie(16) android(16) 前端框架(13) JavaScript(13) Next.js(12) 安卓(11) typescript(10) 资料精选(10) NLP(10) 第三方Cookie(9) Redwoodjs(9) LLMOps(9) Go语言中级开发(9) 自然语言处理(9) 聊天机器人(9) PostgreSQL(9) 区块链(9) mlops(9) 安全(9) 全栈开发(8) ChatGPT(8) OpenAI(8) Linux(8) AI(8) GraphQL(8) iOS(8) 软件架构(7) Go语言高级开发(7) AWS(7) C++(7) 数据科学(7) whisper(6) Prisma(6) 隐私保护(6) RAG(6) JSON(6) DevOps(6) 数据可视化(6) wasm(6) 计算机视觉(6) 算法(6) Rust(6) 微服务(6) 隐私沙盒(5) FedCM(5) 语音识别(5) Angular开发(5) 快速应用开发(5) 提示工程(5) Agent(5) LLaMA(5) 低代码开发(5) Go测试(5) gorm(5) REST API(5) 推荐系统(5) WebAssembly(5) GameDev(5) CMS(5) CSS(5) machine-learning(5) 机器人(5) 游戏开发(5) Blockchain(5) Web安全(5) Kotlin(5) 低代码平台(5) 机器学习资源(5) Go资源(5) Nodejs(5) PHP(5) Swift(5) 智能体(4) devin(4) Blitz(4) javascript框架(4) Redwood(4) GDPR(4) 生成式人工智能(4) Angular16(4) Alpaca(4) SAML(4) JWT(4) JSON处理(4) Go并发(4) kafka(4) 移动开发(4) 移动应用(4) security(4) 隐私(4) spring-boot(4) 物联网(4) nextjs(4) 网络安全(4) API(4) Ruby(4) 信息安全(4) flutter(4) 专家智能体(3) Chrome(3) CHIPS(3) 3PC(3) SSE(3) 人工智能软件工程师(3) LLM Agent(3) Remix(3) Ubuntu(3) GPT4All(3) 软件开发(3) 问答系统(3) 开发工具(3) 最佳实践(3) RxJS(3) SSR(3) Node.js(3) Dolly(3) 移动应用开发(3) 编程语言(3) 低代码(3) IAM(3) Web框架(3) CORS(3) 基准测试(3) Go语言数据库开发(3) Oauth2(3) 并发(3) 主题(3) Theme(3) earth(3) nginx(3) 软件工程(3) azure(3) keycloak(3) 生产力工具(3) gpt3(3) 工作流(3) C(3) jupyter(3) 认证(3) prometheus(3) GAN(3) Spring(3) 逆向工程(3) 应用安全(3) Docker(3) Django(3) R(3) .NET(3) 大数据(3) Hacking(3) 渗透测试(3) C++资源(3) Mac(3) 微信小程序(3) Python资源(3) JHipster(3) 大型语言模型(2) 语言模型(2) 可穿戴设备(2) JDK(2) SQL(2) Apache(2) Hashicorp Vault(2) Spring Cloud Vault(2) Go语言Web开发(2) Go测试工程师(2) WebSocket(2) 容器化(2) AES(2) 加密(2) 输入验证(2) ORM(2) Fiber(2) Postgres(2) Gorilla Mux(2) Go数据库开发(2) 模块(2) 泛型(2) 指针(2) HTTP(2) PostgreSQL开发(2) Vault(2) K8s(2) Spring boot(2) R语言(2) 深度学习资源(2) 半监督学习(2) semi-supervised-learning(2) architecture(2) 普罗米修斯(2) 嵌入模型(2) productivity(2) 编码(2) Qt(2) 前端(2) Rust语言(2) NeRF(2) 神经辐射场(2) 元宇宙(2) CPP(2) 数据分析(2) spark(2) 流处理(2) Ionic(2) 人体姿势估计(2) human-pose-estimation(2) 视频处理(2) deep-learning(2) kotlin语言(2) kotlin开发(2) burp(2) Chatbot(2) npm(2) quantum(2) OCR(2) 游戏(2) game(2) 内容管理系统(2) MySQL(2) python-books(2) pentest(2) opengl(2) IDE(2) 漏洞赏金(2) Web(2) 知识图谱(2) PyTorch(2) 数据库(2) reverse-engineering(2) 数据工程(2) swift开发(2) rest(2) robotics(2) ios-animation(2) 知识蒸馏(2) 安卓开发(2) nestjs(2) solidity(2) 爬虫(2) 面试(2) 容器(2) C++精选(2) 人工智能资源(2) Machine Learning(2) 备忘单(2) 编程书籍(2) angular资源(2) 速查表(2) cheatsheets(2) SecOps(2) mlops资源(2) R资源(2) DDD(2) 架构设计模式(2) 量化(2) Hacking资源(2) 强化学习(2) flask(2) 设计(2) 性能(2) Sysadmin(2) 系统管理员(2) Java资源(2) 机器学习精选(2) android资源(2) android-UI(2) Mac资源(2) iOS资源(2) Vue资源(2) flutter资源(2) JavaScript精选(2) JavaScript资源(2) Rust开发(2) deeplearning(2) RAD(2)

category

实验:这是一项实验技术
在生产中使用之前,请仔细检查浏览器兼容性表。

具有独立分区状态的cookie(CHIPS,也称为分区cookie)允许开发人员将cookie选择到分区存储中,每个顶级网站都有一个单独的cookie罐。

在没有cookie分区的情况下,第三方cookie可以使服务跟踪用户,并在不相关的顶级网站上关联他们的信息。标记为Partitioned的Cookie是双重键控的:通过设置它们的原点和顶级页面的原点。

这意味着它们只能在设置的顶级站点的上下文中读取。这允许阻止跨站点跟踪,同时仍然允许合法使用第三方cookie,如在不同站点之间保持嵌入式地图或聊天小部件的状态,以及保持子资源CDN负载平衡和无头CMS提供商的配置信息。

CHIPS是如何工作的?


为了理解CHIPS是如何工作的,让我们看一个简单的例子。从历史上看,当网站通过<iframe>嵌入内容时,嵌入的内容能够在用户的设备上设置cookie以响应跨网站请求。如果用户访问了嵌入相同内容的其他网站,则嵌入内容可以访问由嵌入内容的第一个实例最初设置的相同cookie。这使内容所有者能够跟踪这些网站以及嵌入相同内容的任何其他网站的用户活动。

例如

  1. 用户访问https://site-a.example,嵌入来自的内容https://3rd-party.example. https://3rd-party.example在用户的设备上设置cookie。
  2. 用户访问https://site-b.example,它还嵌入https://3rd-party.example.的这个新实例https://3rd-party.example仍然能够在用户位于上一页时访问cookie集。


这是因为历史上cookie都是用基于设置它们的网站的主机或域名的密钥存储的,也就是主机密钥。在上述情况下,cookie将与密钥(3rd-party.example”)一起存储。

支持CHIPS的浏览器为Set Cookie HTTP标头提供了一个新的属性——Partitioned——当设置该属性时,网站所有者可以选择使用CHIPS:

HTTP

Set-Cookie: __Host-example=34d8g; SameSite=None; Secure; Path=/; Partitioned;


注意:分区cookie必须使用Secure设置。此外,建议在设置分区cookie时使用__Host前缀,使其绑定到主机名而不是可注册的域。

使用Partitioned集,第三方cookie使用两个密钥存储,即主机密钥和新的分区密钥。分区密钥基于向设置cookie的URL端点发出请求时浏览器正在访问的顶级URL的方案和eTLD+1。

重新审视我们的示例:

  1. 用户访问https://site-a.example,嵌入来自的内容https://3rd-party.example. https://3rd-party.example使用Partitioned在用户的设备上设置cookie,这意味着网站所有者选择加入CHIPS。
  2. cookie的存储密钥现在为{(“https://site-a.example),("3rd-party.example")}。
  3. 当用户访问时https://site-b.example,它还嵌入https://3rd-party.example,这个新的嵌入式实例不再能够访问cookie,因为分区键不匹配。

注意:CHIPS类似于Firefox实现的状态分区机制。不同之处在于,状态分区将cookie存储和检索划分为每个顶级站点的单独cookie罐,而没有允许在需要时选择使用第三方cookie的机制。随着浏览器开始逐步淘汰第三方cookie的使用,在开发人员开始处理这一变化时,仍然需要允许对第三方cookie的有效、非跟踪使用。

CHIPS和子域


CHIPS仍然允许嵌入网站不同子域的第三方内容访问该内容设置的第三方cookies。让我们看一个使用第三方聊天服务的零售网站示例:

  1. 用户访问https://shoppy.example,它嵌入了来自的第三方聊天服务https://3rd-party.example/chat为需要帮助的用户提供支持。https://3rd-party.example/chat使用Partitioned在用户的设备上设置cookie,以在不同的站点子域中保持聊天状态。
  2. cookie的存储密钥为 {("https://shoppy.example"), ("3rd-party.example/chat")}。
  3. 用户访问也嵌入的各种子域https://3rd-party.example/chat包括…在内https://support.shoppy.example和https://checkout.shoppy.example.新的嵌入实例能够访问cookie,因为分区键仍然匹配。

规格

规格

Cookies Having Independent Partitioned State specification
# section-2.1

文章链接

标签