詞彙表·指紋識別
瀏覽器指紋
瀏覽器和裝置特性的組合,可以辨識沒有 cookie 的瀏覽器。
定義
瀏覽器指紋是網站可以從瀏覽器及其裝置讀取的一組特徵,例如瀏覽器版本、時區、語言、安裝的字體、編解碼器和螢幕尺寸,這些特徵會組合成標識符。 MDN 將指紋辨識描述為透過收集和組合這些區別特徵來識別瀏覽器,進而識別使用者。
它是如何運作的
- 有些值隨每個請求被動到達,例如 User-Agent 和 Accept-Language 標頭。 W3C 稱之為被動指紋辨識。
- 其他資訊則由頁面上執行的 JavaScript 或 CSS 主動收集:螢幕解析度、時區、字體清單、Canvas 或 WebGL 渲染輸出等等。
- 每個值都是共同的;結合起來,它們可以將瀏覽器範圍縮小到一個小組或單一裝置。沒有一個屬性必須是唯一的。
為什麼這很重要
- 指紋可以在沒有 cookie 的情況下連結跨站點的訪問,W3C 指出,清除 cookie 或使用 VPN 並不能阻止這種關聯。
- 網站還使用指紋進行詐欺和濫用檢測,例如發現來自一台裝置的多個帳戶。
- 對於合法的多帳戶工作(機構、品質檢查、單獨的客戶帳戶),了解指紋可以解釋為什麼存在單獨的瀏覽器設定檔。
限制和常見誤解
- 「隱身模式隱藏了我的指紋。」私有視窗清除儲存的數據,但頁面可以讀取的裝置特徵基本上保持不變。
- 「隨機指紋是最安全的。」不一致的值(例如,具有桌面螢幕的行動用戶代理)可能比常見的一致設定更具特色。
- 「指紋辨識是可以消除的。」W3C 指南指出,透過廣泛部署的技術手段完全消除堅定對手的指紋識別是難以置信的;緩解措施可以減少它。
範例: 具有相同瀏覽器版本的兩台筆記型電腦在時區、安裝的字體和 GPU 方面仍然可能不同。即使在清除 cookie 後,讀取這些值的腳本加上 Canvas 渲染也可以區分它們。
沒有瀏覽器或代理可以保證帳戶不會受到限制。遵守各平台的規則。
相關術語
- 畫布指紋識別 — 透過渲染 HTML 畫布繪圖的微小差異來識別裝置。
- WebGL 指紋識別 — 使用 WebGL 圖形資訊和渲染輸出來識別設備。
- 用戶代理(用戶代理字串) — 瀏覽器在 User-Agent 標頭中傳送並公開給 JavaScript 的瀏覽器和作業系統識別碼。
- 瀏覽器設定檔 — 一組獨立的瀏覽器資料 — cookie、歷史記錄、設定、擴充 — 與其他設定檔分開。