縮減使用者代理程式,是為了減少被動式數位指紋的途徑,方法是將 User-Agent (UA) 字串中的資訊縮減至僅包含瀏覽器品牌和主要版本、電腦或行動裝置的區別,以及執行的平台。目前,UA 字串會在每個 HTTP 要求中共用,並在 JavaScript 中公開給瀏覽器載入的所有資源。其中包含瀏覽器、執行平台和功能的相關重要資訊。User-Agent Client Hints (UA-CH) 可提供與完整 UA 字串相同的資訊,同時讓網站只要求所需的 UA 資訊。
從 Chrome 95 Beta 版開始,我們會開放原點測試,讓User-Agent 縮減功能生效,讓網站現在就能選擇接收縮減的 UA 字串。這樣一來,網站就能在 Chrome 中將縮減的 UA 設為預設行為前,先行發現並修正問題 (縮減計畫預計在 2022 年第二季開始)。如果您想在穩定版推出前,針對 95 Beta 版使用者測試來源測試版,請務必在 Chrome 95 發布日期 (目前預定為 2021 年 10 月 19 日) 之前選擇參與測試並進行測試。
以下簡要說明原點測試和預期結果,如往常,我們歡迎您在 UA 減少 GitHub 存放區中提供意見回饋或提出任何問題。
什麼是 User-Agent?
User-Agent (UA) 字串會在每個 HTTP 要求中共用,並在 JavaScript 中公開給瀏覽器載入的所有資源。目前,這項資訊包含瀏覽器和執行平台的重要資訊。
為什麼要縮減使用者代理程式?
縮減使用者代理程式,是指在 2020 年 1 月首次宣布的 Chrome 瀏覽器中,減少被動式數位指紋採集途徑。將 UA 字串中的資訊縮減為瀏覽器品牌和主要版本、電腦或行動裝置的區別,以及執行的平台,這樣就更難識別個別使用者。
這對網頁開發人員有何影響?
網站應準備接收縮短的 UA 字串,並考慮參與來源測試 (詳情請見下文)。經過縮減的使用者代理程式值會顯示在以下位置:
User-Agent
HTTP 要求標頭navigator.userAgent
JavaScript Getternavigator.platform
JavaScript Getternavigator.appVersion
JavaScript Getter
如要接收比縮減版 User-Agent 分享的更多用戶端資訊,網站必須改用新的 User-Agent Client Hints API。如要進一步瞭解遷移策略,請參閱「改用 User-Agent Client Hints」。
使用者代理程式縮減計畫目前不包含 iOS 和 WebView,因此這些平台將繼續取得完整的使用者代理程式字串。主要原因是這些平台尚未導入 User-Agent Client Hints。
這項原點試用方案的運作方式為何?
這個來源試用與標準來源試用有點不同。標準來源測試只能控制回應中的行為 (例如控制回應的 JavaScript 中對 API 的存取權)。在這個測試中,我們的目標不僅是修改 JavaScript API 中提供的 UA 字串,還要修改透過 HTTP 要求傳送的 User-Agent 標頭。
為此,我們定義了名為 Sec-CH-UA-Reduced
的臨時用戶端提示,如果在要求中出現此提示,就表示 User-Agent 標頭值包含縮減的 UA 字串。只有在來源試用權杖有效,且來源試用期結束後 Sec-CH-UA-Reduced
用戶端提示無法運作時,才會傳送 Sec-CH-UA-Reduced
用戶端提示 (連同縮減的 UA 字串)。請注意,除非您設定 Critical-CH
header
,否則第一個導覽要求仍會收到未縮減的 User-Agent 字串。
傳送至相同來源的子資源要求會自動傳送與傳送頂層要求相同的 User-Agent 字串。傳送至第三方來源的子資源要求也會傳送與頂層要求相同的 User-Agent 字串,包括來源測試權杖有效時的縮減版 UA 字串,前提是權限政策允許這麼做。
如何參與使用者代理程式縮減來源測試?
如要註冊原點試用計畫並取得網域的權杖,請前往使用者代理程式縮減功能試用計畫頁面。
更新 HTTP 回應標頭:
- 將
Origin-Trial: <ORIGIN TRIAL TOKEN>
新增至 HTTP 回應標頭,其中 <ORIGIN TRIAL TOKEN
> 包含註冊原始試用版時取得的權杖。 - 將
Accept-CH: Sec-CH-UA-Reduced
新增至 HTTP 回應標頭。 - 設定
Accept-CH
只會導致系統在後續要求中傳送縮減的 User-Agent 字串。如要重新傳送第一個導覽要求,並使用縮減的 User-Agent 字串,請在 HTTP 回應標頭中加入Critical-CH: Sec-CH-UA-Reduced
,以及Accept-CH
和Origin-Trial
標頭。 - 注意:如果回應標頭包含有效的
Origin-Trial
權杖和Accept-CH: Sec-CH-UA-Reduced
,則所有子資源要求 (例如圖片或樣式表) 和子導覽 (例如 iframe) 都會傳送縮減的 UA 字串,即使這些要求的來源未註冊為來源測試項目也一樣。
- 將
在 Chrome M95 以上版本中載入網站,並開始接收縮減的 UA 字串。
請將任何問題或意見回饋提交至 UA Reduction GitHub 存放區。
如要查看原始試用版的簡單示範 (以及原始碼),請前往 https://uar-ot.glitch.me/。
如何以第三方嵌入功能參與來源試用?
從 Chrome 96 開始,第三方嵌入內容 (例如其他網站中的 iframe) 可以參與來源測試,而不需要註冊頂層網站。
如要註冊成為第三方嵌入供應商,請按照下列步驟操作:
- 前往User-Agent Reduction 試用方案,然後按一下「註冊」。
- 建立權杖時,請務必勾選
Third-party matching
核取方塊。 - 如要從第三方嵌入內容接收縮減的 User-Agent 標頭,請更新 HTTP 回應標頭。
- 如要在 JavaScript API 中接收縮減的 User-Agent 字串,則必須透過 JavaScript 插入測試權杖。
在第三方嵌入項目上執行原點試用版時,請注意以下幾點:
+ 第三方嵌入項目無法指定 Critical-CH
,因此第一個導覽不會傳送縮減的通用 Analytics 字串,但第三方嵌入項目的子資源要求會傳送縮減的通用 Analytics 字串。+ 如果原始試用版已驗證第三方嵌入項目的來源,頂層導覽中對相同來源的後續要求就會傳送縮減的 UA 字串。因此,建議您同時參與頂層和嵌入要求的來源試用計畫。+ 如果使用者代理程式已停用第三方 Cookie,則原點測試將無法在第三方嵌入要求中使用 User-Agent
標頭,但 Javascript API 仍會取得縮減的 UA 字串。
如何驗證來源試用功能是否正常運作?
如要驗證來源測試是否正常運作,請檢查要求標頭,並確保以下事項:
- User-Agent 標頭包含縮減版本。請參閱這份通用 Analytics 字串縮減範例清單。最簡單的分辨方法是,Chrome 子版本字串包含
0.0.0
。 Sec-CH-UA-Reduced
標頭設為?1
。
包含原始試用權限權杖的初始回應標頭應如下所示:

後續要求標頭應包含縮減的 UA 字串,如下所示:

如何停止參與使用者代理程式縮減來源試用?
您可以在試用期間的任何時間點停止參與,並接收完整的 User-Agent 字串。如要停止參與:
- 在 HTTP 回應中傳送不包含
Sec-CH-UA-Reduced
的Accept-CH
標頭。注意:如果您的網站未要求任何其他用戶端提示,則使用空值的Accept-CH
是達成此目標的有效方法。 - 從 HTTP 回應中移除使用者代理程式縮減試驗的
Origin-Trial
標頭。 - 如果已設定,請從 HTTP 回應的
Critical-CH
標頭中移除Sec-CH-UA-Reduced
。
原始試用方案的試用期為何?
使用者代理減少來源試用功能將至少運作六個月,相當於約六個 Chrome 里程碑。來源測試將在 M95 中顯示,並在 M101 結束。屆時,Chrome 會先評估來源測試的意見回饋,然後再根據推出計畫,分階段傳送縮減的 User-Agent 字串。如果網站需要更長的時間,可以選擇參與後續的淘汰來源試用方案,這樣就能再使用完整的 UA 字串至少六個月。我們會在停用前測試功能準備就緒時,發布更多詳細資訊。
如何針對使用者代理程式縮減原點試用計畫提供意見回饋?
請將任何問題或意見回饋提交至 UA Reduction GitHub 存放區。