· 深度 · 7 分钟阅读

ChatGPT的跨站追踪:__obi Cookie如何将你的浏览历史缝合到AI账号

9月20日,Hacker News上一篇由lmbbuchodi撰写的博文以613分的热度刷屏,核心结论直白得令人不安:OpenAI的广告收集器bzr.openai.com通过一个名为`__obi`的跨站Cookie,正在将你在第三方网站上的

9月20日,Hacker News上一篇由lmbbuchodi撰写的博文以613分的热度刷屏,核心结论直白得令人不安:OpenAI的广告收集器bzr.openai.com通过一个名为__obi的跨站Cookie,正在将你在第三方网站上的搜索、阅读甚至购买行为,精确地关联回你的ChatGPT账户。这并非臆测,而是作者在手机上用两种独立的捕获方法复现、并交叉验证了数月流量数据后的实证结果。


这件事的切入感很强。你上午在某电商网站搜了一款跑鞋,下午在某个技术博客读了一堆关于Rust性能优化的文章,晚上你打开ChatGPT问“帮我写个Rust的异步Web服务”,AI可能会更懂你的上下文。过去,这种“懂”靠的是你手动输入的提示词;现在,靠的是你在全网留下的行为碎片被OpenAI悄悄收集、打标签、再缝合到你唯一的AI身份上。

技术上,这个缝合过程分两步完成,而且每一步都写得非常“标准”——标准到任何有广告系统背景的人看一眼就会觉得眼熟。

第一步发生在ChatGPT内部。当你在chatgpt.com上时,客户端会生成16个随机字节,然后向POST /backend-api/bazaar/obi/sync-token发起请求。后端返回一个RS256签名的JWT令牌。解开这个令牌,里面装着几个关键字段:sub是你的账户主体,obi是一个22字符的标识符,consent_decision标记为analytics_allowedexp的有效期只有60秒。这个令牌把“你”和“这个标识符”绑定在一起,且仅限用于bzr.openai.com这个广告收集域。顺便提一下,bzr是OpenAI内部对广告平台的代号,意为“bazaar”;wadi则是负责签发这些令牌的服务。60秒的过期时间很有意思,它意味着这个跨站追踪的“跳板”非常短暂,每次跨站跳转前都需要重新生成一次,而不是一个永久性的ID。

第二步发生在第三方网站。客户端拿着这个JWT,向bzr.openai.com/v1/obi/sync发起跨站POST请求。响应头里会带回一个Set-Cookie指令:__obi的值就是那个标识符,作用域设在.openai.comHttpOnlyMax-Age长达一年(31536000秒),SameSite属性是noneSameSite=none是关键,它允许这个Cookie在跨站请求中被携带。于是,当你在任何一个加载了OpenAI广告代码的网站(比如某家卖鞋的独立站,或者某个科技媒体)上时,那个追踪脚本就会把__obi连同你当前的页面数据——你正在搜什么产品、在读什么文章、有没有加入购物车——一起回传给OpenAI。

lmbbuchodi在博文中提到的实证规模相当可观:936个不同的广告像素(advertiser pixels),覆盖了1029个主机名。这不是某个测试环境的零星数据,而是几个月观察到的真实流量分布。数据量级的存在,说明OpenAI的广告网络已经在相当一部分网页上铺开了追踪代码。

这里有个对比值得琢磨。Meta和Google的广告追踪代码在零售和媒体网站里已经塞了十几年,机制上大同小异:你访问网站,网站里的脚本带一个Cookie或参数回传给广告平台,平台据此更新你的用户画像。OpenAI做的事情,用HN评论区的话说,就是“the same way retailers already install Meta and Google tracking code”。机制不新,但主体变了。

以前,广告商知道你在网站上的行为,但他们并不一定知道“你是哪个AI用户”。你的浏览行为是散落在各个Cookie和参数里的孤立数据点,广告商可以推断出你“喜欢运动鞋”“关注技术博客”,但很难把这个推断和你每天跟ChatGPT聊的那些“帮我优化这段代码”“我最近很焦虑,给我讲讲认知行为疗法”精确地对上。ChatGPT的对话历史是高度私人的,它里面藏着你的职业、你的困惑、你的决策偏好。当__obi把Web行为和ChatGPT账号缝在一起,OpenAI理论上就拥有了一个比任何传统广告商都厚得多的用户画像:你不仅在网站A买了什么,你还告诉过AI你为什么要买、你当时在纠结什么、你接下来打算怎么用。

这种“关联”而非单纯“监控”的特性,是AI时代特有的隐私风险。它不要求OpenAI直接爬取你的浏览记录,而是让广告像素主动把行为数据“送回”OpenAI的域名,再和已有的对话数据做匹配。数据的流向是单向的、主动的、且隐藏在常规的网页加载流程里。用户感知不到任何弹窗或提示,除了最初那次在ChatGPT里可能同意过的“analytics allowed”状态。

OpenAI在2026年2月9日更新过隐私政策,正式确立了ChatGPT广告机制的数据边界。也就是说,__obi的这套流程不是某个第三方黑帽在偷偷摸摸搞的事,而是OpenAI官方文档背书、合规框架内的商业化动作。OpenAI需要变现,广告是绕不开的路线;广告要精准,就需要跨站数据。把Web行为和AI对话缝合,是提升广告匹配效率的理性选择,只是这个选择把“助手”的定位和“监控工具”的功能搅和到了一起。

HN上的讨论也折射出这种张力的复杂性。thih9在评论区说“我很高兴欧盟正在通过立法对抗这类行为”,认为尽管某些结果可能让人恼火,但净收益对消费者数据隐私是积极的。但dmix立刻反驳:欧盟的广告追踪和数据经纪业务依然活跃,过去十年的隐私收益“至多有限”。他引用了一篇arXiv论文和netzpolitik.de的报道,指出虽然一些大型追踪器被迫缩小了数据收集范围,但整体的广告和位置追踪业务格局基本没变。还有人把话题引到强制加密后门上,认为那才是对个体隐私的工业级危机,远比广告追踪严重。这些争论没有谁对谁错,只是说明在AI平台深度嵌入日常生活的当下,隐私的边界在哪里、监管能管多细,各方都还没共识。

一个不太被注意的细节是__obiMax-Age是一年。这个Cookie不是跳板,它是个长期的身份锚点。只要你一年里访问过任何带OpenAI追踪代码的网站,__obi就会一直安静地躺在你的浏览器里。下一次你打开ChatGPT,即使你换了设备、清了缓存,只要Cookie还在,OpenAI依然能把这次会话的上下文和过去一年的Web行为接起来。它不像那个60秒过期的JWT那样转瞬即逝,__obi是慢变量,是长期画像的基底。

目前,OpenAI没有公开说明__obi收集到的数据具体用于哪些下游任务:是训练更个性化的回答?是优化广告出价策略?还是作为用户兴趣标签卖给广告主?这些信息还锁在隐私政策的模糊措辞里。研究者能证实的是数据流的存在和规模,但数据的最终去向,OpenAI没有给出足够的透明度。

对普通用户来说,最直接的应对其实很简单:在隐私敏感的网站上,禁用.openai.com域的Cookie,或者使用浏览器插件阻断第三方追踪器。但这只是堵一个口。只要OpenAI的广告业务还在扩张,bzr.openai.com的像素还会继续出现在更多网站上,__obi的缝合逻辑就不会消失。AI助手知道你是谁这件事,正在从“你告诉它”变成“它从你的全网足迹里推断出来”,而且这个过程在广告代码的掩护下,悄无声息。

未来值得盯紧的,是OpenAI是否会公开__obi数据的使用边界,以及欧盟等监管机构是否会针对AI平台特有的跨域数据关联出台更细化的规则。在此之前,我们以为自己在和AI对话,其实AI也在通过你留下的每一个Cookie,悄悄拼出你的完整画像。

✉️ 免费订阅

每天接收最值得关注的 AI 信号

加入 1000+ 创始人、投资人和技术从业者。每天早上直达邮箱:精选 AI 动态、深度分析、值得关注的二阶变量。

无垃圾邮件,随时退订。