返回知识中心
身份

Cookie Store API:异步 Cookie、change 事件与隐私边界

说明 Cookie Store API 的异步读写、change 事件和 Service Worker 可见性,并把 origin 与隐私边界写进验证流程。

BotBrowser Team

文档中心

想直接进入 身份 文档吗?

这篇文章属于博客内容库。若你要步骤化配置、参考说明和持续更新,请直接进入对应 docs 分区。

Cookie Store API 把 Cookie 读写变成 Promise 操作,并提供 change 事件。它不会把 Cookie 变成跨 origin 的共享状态,也不会绕过浏览器的 Secure、SameSite、HttpOnly、Domain 或 Path 规则。本文用一个自有站点的 control/candidate fixture 区分页面、Service Worker 和其他 origin 能看到的结果。

摘要

BotBrowser 可以用合成 Cookie 重放页面与 worker fixture,但不能改变浏览器 Cookie 政策或证明服务器账户状态。本文依据 WICG Cookie Store 规范和 MDN 实现文档说明浏览器知识边界。

API 是异步的,事件只是当前上下文的观察,worker 启动后必须重新协调状态。origin 和 Cookie 属性仍是控制边界。BotBrowser 支持声明 BrowserContext 中的合成 Cookie 重放,但明确不能绕过浏览器政策、读取 HttpOnly 或证明服务器账户。

目录(内容)

  • 异步读写
  • change 事件
  • Service Worker 可见性
  • 隐私边界
  • 实际结论

页面与 Service Worker 在同一 origin 内异步读写 Cookie 并接收 change 事件,其他 origin 被边界阻断

异步操作

cookieStore.get()、getAll()、set() 与 delete() 返回 Promise。成功只表示当前上下文接受了这次请求,不代表下一个请求、另一个标签页或服务器一定能看到该值。先检查 window.cookieStore,再区分 unsupported、written、deleted 和 rejected。

操作失败应成为可见的产品状态,而不是被吞掉的异常。若浏览器没有 API,可使用范围相同的既有 fallback;fallback 不能扩大 Cookie 的作用域,也不能把 token 写入日志。Cookie 值不应进入分析事件、截图或错误文本。

Change events

cookieStore 的 change 事件报告当前上下文可见的 changed/deleted Cookie。它适合刷新派生 UI,不是网络 webhook、完整审计日志或服务器已收到 Cookie 的证明。事件到达后重新读取当前状态,不要把事件载荷当作永远有效的值。页面和 worker 都可能需要处理重复、延迟或错过的通知。

Service Worker 可见性

在支持的安全上下文中,Service Worker 可以使用相关 Cookie Store API,但可见性仍受注册范围和 origin 限制。它不能读取其他 origin,也不能因拥有 scope 就成为身份授权方。Worker 停止期间可能错过事件,因此激活时应重新读取状态;同时记录 worker 版本,避免把脚本更新误判为浏览器变化。

隐私边界

使用自有 HTTPS 页面和同 origin worker,从干净 profile 开始设置测试标记、读取、删除并刷新。记录浏览器版本、secure context、worker 注册、Cookie 属性和可见结果。把 API 缺失、属性过滤、事件到达、删除成功分别列出。HttpOnly Cookie 不应被脚本读取;成功读取也不能证明人的身份、同意或服务器端账户状态。

BotBrowser 的 --bot-cookies 可为声明的 BrowserContext 建立合成起始状态,但不能授予 Cookie Store API 权限、暴露 HttpOnly 值或改变 SameSite。更新浏览器、worker、登录流程或 Cookie 属性后重跑 fixture。

延伸阅读

参见 Storage Access API for Embedded Content 与 Cookie Management。

实际结论

保持操作异步,在 worker 启动时重新协调状态,并记录浏览器版本和 Cookie 属性;所有结果都只代表限定上下文中的浏览器观察。

决策表

问题记录不要推断
set() 是否成功当前 origin 接受了变更服务器持久化或身份
是否收到 change合格上下文观察到变化完整审计记录
worker 是否读取标记worker 生命周期与 scope其他 origin 访问
删除后是否为空当前上下文不再看到标记所有备份都已删除

来源

#Cookie Store API#Cookie#Service Worker#浏览器隐私

让 BotBrowser 从研究走向生产

先用这些指南理解模型,再进入跨平台验证、隔离上下文和面向规模化的浏览器部署。