OpenAI 以 __obi Cookie 跨站追蹤 ChatGPT 用戶
OpenAI 在 bzr.openai.com 設置名為 __obi 的 Cookie,範圍限定於 .openai.com。該 Cookie 會在使用者瀏覽 ChatGPT 時產生,並與其 ChatGPT 帳號綁定。之後,當使用者造訪任何嵌入 OpenAI 廣告代碼的第三方網站時,__obi 會隨同請求自動傳回 OpenAI,讓廣告商得以將該網站的行為資料與使用者的 ChatGPT 身分相連。
1. 產生與簽發識別碼
在 chatgpt.com,前端會隨機產生 16 位元組,透過 POST /backend-api/bazaar/obi/sync-token(未登入時使用 /backend-anon/)向後端請求簽名的 JWT(JSON Web Token)。JWT 內含 sub(帳號)與 obi(識別碼),使用 RS256 演算法簽名,僅在收集器(collector)範圍內有效,且 60 秒後過期。bzr 為 OpenAI 內部廣告平台的代號,wadi 為發行服務。
2. Cookie 設定
前端將取得的 JWT 以跨站 POST 送至 bzr.openai.com/v1/obi/sync,回應中會以 SameSite=None; Secure(跨站請求必備)與一年有效期的屬性寫入 __obi Cookie。JWT 中的 obi 值與 Cookie 中的值完全相同。
3. 廣告商網站回傳 Cookie
任何在 ChatGPT 上購買廣告的公司,都會在自家網站上嵌入 OpenAI 提供的小段程式碼(類似 Meta、Google 的追蹤碼)。此程式碼會在載入時自動將 __obi Cookie 連同以下資訊送至 OpenAI:
| 來源 | 說明 | |------|------| | in | 廣告商自行傳遞的參數 | | fm | 從表單欄位抓取的資料 | | ht | 從頁面文字解析的資訊 | | js | 從標籤管理工具(Tag‑Manager)擷取的資料 |
實測顯示,fm、ht、js 抓取的身份資訊遠多於廣告商主動提供的 in,比例約為 685:255。Tag‑Manager 會將 window.dataLayer.push 取代為自家函式,並解析 gtm.js 標籤的 l= 參數,以取得使用者的電子郵件、電話號碼等。這些資料在傳送前會以 SHA‑256 雜湊(hash)處理,降低明文洩漏風險。
4. 可能的影響與未來展望
- 隱私風險:使用者在非 OpenAI 網站的行為(搜尋商品、閱讀文章、購買行為)可被直接對應至其 ChatGPT 身分,形成跨平台的行為画像。
- 廣告效能提升:OpenAI 能夠提供更精準的受眾定位,吸引更多廣告商投入 ChatGPT 生態系。
- 監管挑戰:此類跨站追蹤可能觸及《個人資料保護法》相關規範,未來或需面對更嚴格的合規要求或使用者同意機制。
對於一般使用者而言,了解 __obi 的運作機制有助於評估在 ChatGPT 上的隱私暴露程度,並可透過瀏覽器的隱私模式或阻擋第三方 Cookie 來降低被追蹤的可能性。未來若 OpenAI 調整追蹤策略或提供更透明的選項,將是業界與使用者共同關注的焦點。
