分区 Cookie(CHIPS):隐私、一致性与安全嵌入会话
理解 Partitioned 属性、顶级站点键,以及它与 Storage Access API 的边界。
BotBrowser Team
同一个嵌入服务在不同顶级站点中可能看到不同 Cookie。Partitioned(CHIPS)把这种隔离明确化,键包含顶级站点和 Cookie 来源。BotBrowser 可以在声明的浏览器、配置和代理条件下重复授权流程并观察结果,但不能合并存储、授予 Storage Access 或证明服务器身份模型正确。
要点
Partitioned使用顶级站点和 Cookie 来源作为存储键。- CHIPS 不等同于通用 Cookie 管理、全部存储分区或 Storage Access API。
- 分区会保持嵌入会话隔离,但不代替认证、授权或同意。
- 用合成账号测试两个顶级站点、过期、清理、拒绝和回退。
- BotBrowser 可以重复授权流程,但不能合并 Cookie 分区或认证服务器身份。
Contents
Partitioned 的含义
RFC 6265bis 定义 Cookie 语法,MDN 说明 Partitioned 请求使用分区存储。https://embed.example 在 news.example 和 shop.example 中可以得到两个 Cookie 存储。配合 Secure 并记录浏览器版本。Cookie 被接受不等于服务器已授权账户,也不等于数据治理正确。
Cookie 测试夹具
使用两个合成顶级页面和受控端点:
Set-Cookie: embed_session=test-a; Secure; HttpOnly; SameSite=None; Partitioned; Max-Age=900
同一顶级站点刷新后应继续发送 Cookie,换顶级站点后不应出现相同存储。记录存储、发送、过期或拒绝。不要使用真实账号或令牌。增加缺少 Partitioned、缺少 Secure、配置清理和 Storage Access 被拒绝的情况。
CHIPS 与相邻 API
Cookie 管理决定创建、读取、过期和删除。CHIPS 增加存储边界。一般存储分区可能覆盖缓存等其他表面,不能由 Cookie 结果推断。Storage Access API 按权限规则请求未分区 Cookie,不会自动把 CHIPS Cookie 变成全局 Cookie。
隐私与身份边界
分区减少跨站复用,但不能消除服务器日志、同意和应用层关联。Cookie 值不证明用户身份。服务器仍需授权每次状态变更,轮换会话,不要在键或 URL 中放秘密。记录站点类别、来源、属性、状态和保留决定即可。
针对本主题,BotBrowser 支持在声明的浏览器、配置、配置文件和代理条件下重复授权嵌入会话流程;它不能合并 Cookie 存储、授予 Storage Access、改变服务器授权或认证法律同意。
证据决策矩阵
| 观察 | 稳妥解释 | 下一步 |
|---|---|---|
| 同一站点刷新后 Cookie 返回 | 测试分区保留合成会话 | 测试过期与清理 |
| 第二站点收不到相同 Cookie | 与分区键一致的隔离 | 设计显式登录或交接 |
| Cookie 被拒绝 | 语法、Secure、策略或支持问题 | 检查网络与兼容性 |
| Storage Access 被拒绝 | 未分区路径不可用 | 保留 CHIPS 或显示回退 |
| 过期后消失 | 生命周期清除了状态 | 明确要求再次认证 |
结论
当嵌入功能需要按顶级站点隔离会话时使用 Partitioned。把它与 Cookie 管理、通用存储分区和 Storage Access 区分开。下一步运行双顶级站点夹具并验证登出、过期和回退。
常见问题
CHIPS 会在所有站点共享登录吗?
不会,它按顶级站点隔离存储。
它能替代同意吗?
不能,存储范围不决定处理依据。
它就是 Storage Access API 吗?
不是,Storage Access 请求未分区 Cookie 的权限。
BotBrowser 能合并分区吗?
不能,它只重复流程并观察结果。