跳至內容
本頁由英文自動翻譯。 查看英文原文
詞彙表·指紋識別

用戶代理(用戶代理字串)

瀏覽器在 User-Agent 標頭中傳送並公開給 JavaScript 的瀏覽器和作業系統識別碼。

定義

在HTTP中,用戶代理程式是發出請求的客戶端軟體,用戶代理請求標頭是它發送的文字字串,以便伺服器可以識別應用程式、作業系統、供應商和版本。 MDN 指出,此資訊歷來造成隱私問題,因為它可用於指紋辨識。現代 Chromium 瀏覽器傳送簡化的字串並將詳細值移至使用者代理客戶端提示(Sec-CH-UA-* 標頭和 navigator.userAgentData)。

圖表:簡化的用戶代理字串、預設客戶端提示和透過 Accept-CH 請求的高熵提示
編輯圖(簡化插圖,不是產品螢幕截圖)。

它是如何運作的

  • 瀏覽器在每次請求時都會傳送 User-Agent;典型的 Chrome 桌面值類似於「Mozilla/5.0 (Windows 新台幣 10.0;贏64; x64) AppleWebKit/537.36 (KHTML,如 Gecko)Chrome/143.0.0.0 野生動物園/537.36」。「Mozilla/5.0」、「KHTML,如 Gecko」和「Safari」標記被保留以實現歷史相容性。
  • 自從用戶代理減少(從 Chrome 推出) 101 到 110),Chrome 將次要版本凍結為 0.0.0,使用固定桌面平台字串,並且 Android 發送固定的“Android 10; K」而非真實的作業系統版本和裝置型號。navigator.userAgent 和 navigator.platform 中出現相同的減少值。
  • Chromium 瀏覽器預設也會傳送低熵客戶端提示 — Sec-CH-UA(品牌和主要版本)、Sec-CH-UA-Mobile 和 Sec-CH-UA-Platform。伺服器可以透過 Accept-CH 回應頭請求高熵提示,例如平台版本、模型、架構或完整版本列表,然後瀏覽器決定返回什麼。

為什麼這很重要

  • 使用者代理程式是瀏覽器指紋中的被動訊號之一:它在沒有任何腳本運行的情況下到達每個請求。
  • 偵測系統可以將使用者代理字串與客戶端提示和 JavaScript 值(navigator.platform、螢幕尺寸、觸控支援)進行比較。價值觀不一致的個人資料比普通的個人資料更引人注目。
  • 指紋瀏覽器讓每個設定檔設定其使用者代理程式;好的工具可以使匹配的客戶端提示、平台和瀏覽器引擎版本保持一致。

限制和常見誤解

  • 「更改使用者代理字串會更改我的瀏覽器指紋。」它改變一個值;客戶端提示、JavaScript API、Canvas/WebGL 輸出和字體仍然描述真實設置,除非它們也一致更改。
  • 「用戶代理字串顯示了我的確切作業系統和裝置。」在簡化的 Chrome 中,它不再這樣做了 - Windows 8.1 和 Windows 11 兩者均報告“Windows 新台幣 10.0「, 和 Android 設備報告》Android 10; K」。
  • 「稀有或非常新的用戶代理更安全。」不尋常或不匹配的價值觀會縮小你的範圍;常見的、內部一致的組合不太獨特。
範例: 一份簡介聲稱「Macintosh;Intel Mac OS X 10_15_7” 在其用戶代理中,但其 Sec-CH-UA-Platform 提示顯示“Windows」並且 navigator.platform 回傳「Win32”。比較這三個值的網站可以看到該配置文件與其聲稱的不符。

沒有瀏覽器或代理可以保證帳戶不會受到限制。遵守各平台的規則。

相關術語

  • 瀏覽器指紋 — 瀏覽器和裝置特性的組合,可辨識沒有 cookie 的瀏覽器。
  • 畫布指紋識別 — 透過渲染 HTML 畫布繪圖的微小差異來識別裝置。
  • 瀏覽器設定檔 — 一組獨立的瀏覽器資料 — cookie、歷史記錄、設定、擴充 — 與其他設定檔分開。

來源

檢查了2026-11-07。

← 所有術語表