GUIDE · BROWSER FINGERPRINTING

瀏覽器指紋是什麼?常見維度與檢測方法。

瀏覽器指紋(browser fingerprint)是網站讀取瀏覽器與裝置的一組特徵後形成的識別資訊。它不需要在你的電腦上儲存任何東西,清除 Cookie 也不會改變它,因此常被用於反詐欺、風險控管和跨網站識別。

更新於

瀏覽器指紋和 Cookie 有什麼不同

兩類識別資訊對比
Cookie 等儲存資料瀏覽器指紋
儲存在哪裡你的瀏覽器裡不儲存,由網站每次讀取計算
能否清除可以清除或使用無痕模式不能,同一裝置通常長期穩定
常見用途保持登入、購物車、偏好設定識別裝置、反詐欺、風險控管、廣告歸因

常見的指紋維度

網站能讀取到什麼
維度暴露的資訊常見的不一致
User-Agent 與 Client Hints瀏覽器品牌與版本、作業系統、架構UA 寫 Chrome 144,Client Hints 或 Worker 中卻是另一個版本
螢幕解析度、可用高度、色深、裝置像素比可用高度與系統工作列不符
語言與時區navigator.language、Accept-Language、Intl 時區時區與 IP 所在地不一致
字型已安裝的字型清單與渲染寬度Windows UA 卻檢測到 macOS 專有字型
Canvas文字與圖形渲染結果的雜湊值每次讀取都會變化(隨機雜訊),或與 GPU 不符
WebGL / WebGPUGPU 廠商與渲染器、參數、像素結果Windows 系統卻回報 Apple GPU
AudioAudioContext 處理結果的雜湊值同一裝置多次結果不穩定
ClientRects元素尺寸的細微差異主視窗與 iframe 結果不同
硬體CPU 核心數、裝置記憶體核心數與機型明顯不符
WebRTC本機與公用 IP 候選位址使用代理時仍暴露真實的公用 IP
自動化特徵navigator.webdriver、無頭瀏覽器標記自動化工具留下的屬性

為什麼「一致」比「隨機」更重要

真實裝置的特徵彼此吻合,並且長期穩定。檢測網站因此不只看某個值是否罕見,更關注這些值能否同時成立:

  • 跨維度一致:系統、字型、GPU、螢幕與瀏覽器版本要來自同一種裝置。
  • 跨上下文一致:主頁面、iframe 與 Worker 讀取到的身份應該相同。
  • 跨時間穩定:同一裝置每次造訪都得到相同的指紋;每次都變的「隨機雜訊」本身就是異常訊號。
  • 與網路一致:時區、語言和地理位置應與出口 IP 所在地相符。

如何檢測自己的瀏覽器指紋

常用檢測頁面
工具側重點
CreepJS多上下文一致性、Canvas、WebGL、Audio、字型、Intl 等,並標記可疑的「謊言」
Pixelscan瀏覽器、系統、位置、自動化與指紋偽裝的一致性
BrowserLeaks分項檢視 Canvas、WebGL、字型、WebRTC、Client Hints 等原始資料
IPhey瀏覽器、位置、IP、硬體、軟體的綜合評估
  1. 同時測試兩個環境

    指紋瀏覽器的價值在於環境之間有區別,只測一個環境看不出問題。

  2. 重新啟動後再測一次

    同一環境關閉再開啟,關鍵值(Canvas、WebGL、時區)應保持不變。

  3. 和本機真實瀏覽器對比

    同一臺電腦上的官方 Chrome 也會被部分頁面標成紅色,請先確認哪些提示是檢測網站自身的判斷方式。

  4. 記錄欄位而不是顏色

    記下測試時間、系統、瀏覽器與核心版本、代理,以及具體失敗欄位。檢測規則會更新,結果只代表當時。

Prism 如何處理這些維度

Prism 的指紋設定由自行編譯的 Chromium 核心在底層處理,不依賴向網頁注入指令碼;系統、CPU、螢幕與 GPU 來自同一套硬體範本,Canvas、WebGL、Audio 等細節由每個環境的指紋種子固定。逐項說明請見指紋設定與硬體範本。

常見問題

清除 Cookie 或用無痕模式能換掉指紋嗎?
不能。指紋來自裝置與瀏覽器本身的特徵,清除儲存資料不會改變它。
使用代理能改變瀏覽器指紋嗎?
代理只改變網路出口。時區、語言與 WebRTC 等仍可能暴露差異,需要與指紋一起設定。
指紋越獨特越容易被識別嗎?
越罕見的組合越容易被區分,但更關鍵的是自相矛盾的組合。使用常見、完整的硬體組合,比隨機拼湊更穩妥。
檢測頁面顯示紅色,就一定有問題嗎?
不一定。先看具體欄位,並與同一臺電腦上的真實瀏覽器對比。代理被識別、字型差異或網站規則都可能導致提示。