如何獲取你的瀏覽器指紋資訊?提取方式分享
Cookie 清了,無痕模式開了,IP 也換了,打開網站它還是能認出你。廣告推薦和之前一模一樣,風控提示照彈不誤。
背後起作用的,是瀏覽器指紋(Browser Fingerprinting),它和 Cookie 不一樣——Cookie 是你電腦裡的檔案,隨時可以刪除。指紋不存於本機,每次瀏覽網頁時當場計算。清除快取、換帳號都不受影響,裝置配置沒有大變動,網站就能認出你是同一個人。
這篇文章把瀏覽器指紋是怎麼回事、網頁怎麼提取你的指紋、自己怎麼查、以及多帳號場景下怎麼主動控制指紋,系統地梳理一遍。

一、瀏覽器指紋是什麼
瀏覽器指紋是網站把你瀏覽環境裡幾十項特徵組合起來生成的唯一識別碼。瀏覽器版本、作業系統、螢幕解析度、字型列表、顯示卡型號……單一特徵很多人共享,但幾十項組合在一起,重複機率極低。有公開測試顯示,指紋唯一性經常能達到 90% 以上。
它和 Cookie 的核心區別:Cookie 是網站寫進你電腦的,你能找到它、刪掉它;指紋是網站讀取你裝置本身的資訊,每次造訪都現算,不存於本機,刪不掉。
網站採集指紋主要從這幾個維度下手:
・瀏覽器類型、版本號、作業系統(User-Agent)
・螢幕解析度、色彩深度、裝置像素比
・時區和語言設定
・已安裝的字型列表
・Canvas 和 WebGL 圖形渲染結果
・音訊處理特徵(AudioContext)
・WebRTC 網路資訊(可能洩漏真實 IP)
・瀏覽器擴充功能及 MIME 類型
二、網頁怎麼把你的指紋提取出來
全部靠 JavaScript 在後台跑,用戶完全無感知,幾秒內完成。分幾個層次:
第一步:基礎被動資訊
瀏覽器每次請求網頁會自動帶上 User-Agent、語言、時區等資訊。網站透過 navigator.userAgent、screen.width、screen.height 等 API 直接讀取。這些資訊看起來普通,但已經能篩掉大量用戶——同樣是 1920×1080,Windows 和 macOS 的渲染方式並不相同。
第二步:Canvas 指紋
網站讓瀏覽器在隱藏的 Canvas 畫布上繪製幾行帶顏色漸層的文字,然後用 toDataURL() 讀取像素數據。因為不同顯卡驅動程式、字型渲染引擎、反鋸齒演算法存在細微差異,最終的像素輸出幾乎不可能完全一樣。整個過程中用戶能感知到的最多是一個 1×1 像素的隱藏元素,通常什麼都沒有。
第三步:WebGL 指紋
比 Canvas 更深入。網站呼叫 WebGL API 渲染一個簡單的 3D 模型,從中讀取 GPU 廠商、具體型號(Intel Iris 還是 NVIDIA GeForce)、渲染精度、著色器編譯參數。很多高強度風控系統以 WebGL 作為核心判斷維度。
第四步:字型和音訊補充
網站透過 JavaScript 枚舉系統字型——在隱藏元素上測量寬度,或在 Canvas 上用不同字型繪製後比對像素。Windows 預設微軟正黑體、macOS 蘋方/華文宋體,差異明顯。音訊方面,網站讓瀏覽器生成一段振盪器聲音,讀取處理後的波形數據,因為不同音效卡和驅動的浮點運算精度不同,結果會有差異。
最終生成
所有數據收集完後,前端 JS 打包成一個大物件,用雜湊演算法(Hash)算出雜湊值,發回伺服器。伺服器和現有資料庫進行比對,相似度超過閾值即判定為同一用戶。
三、怎麼查看自己的瀏覽器指紋
三種方式,從易到難:
3.1 線上檢測工具
打開以下網站即可自動檢測,會展示 Canvas、WebGL、字型等各項指紋的詳細報告:
・BrowserScan:綜合檢測,給出唯一性評分和各維度詳情
・ToDetect:支援內地及香港造訪,展示指紋分數和風險項目
・AmIUnique:展示指紋在全球範圍內的獨特性
・BrowserLeaks:偏技術向,提供 JSON 格式的完整報告
3.2 瀏覽器開發者工具
按 F12 打開開發者工具,切換到 Console 標籤,輸入以下指令逐項查看:
・navigator.userAgent —— 瀏覽器版本和作業系統
・screen.width 和 screen.height —— 螢幕解析度
・navigator.language —— 語言設定
・Intl.DateTimeFormat().resolvedOptions().timeZone —— 時區
・navigator.hardwareConcurrency —— CPU 核心數
・navigator.deviceMemory —— 裝置記憶體大小
3.3 用 FingerprintJS 自測
適合有前端基礎的用戶。FingerprintJS 是開源庫,在 HTML 頁面中引入後,執行 FingerprintJS.load().then(fp => fp.get()) 即可獲取 visitorId 和完整指紋組件,包括 Canvas 雜湊值、字型列表、擴充功能資訊等。
四、檢測之後,多帳號場景下的指紋管理
對普通用戶來說,了解自己的指紋情況就足夠了。但如果做跨境電商或社群媒體矩陣營運,手裡管著幾十上百個帳號,只檢測不修改沒有實際意義。你需要的是讓每個視窗擁有獨立、互不關聯的指紋環境。

指紋瀏覽器是目前這個場景的常用方案。以比特瀏覽器為例,它不是擴充功能層面的表層偽裝,而是在 Chromium 核心層面為每個視窗生成獨立指紋:
・Canvas 和 WebGL:注入微小噪聲,每次渲染雜湊值不同
・字型列表:模擬不同系統的字型組合
・User-Agent:可切換 Windows、macOS、Android 等
・解析度、時區、語言:與代理 IP 自動匹配
・WebRTC:防止真實 IP 洩漏
・AudioContext:模擬不同音效卡特徵
每個視窗的 Cookie、LocalStorage、快取完全隔離,數據不會交叉。配合獨立代理 IP,視窗之間完全無關聯。軟體提供 10 個免費環境,滿足日常測試和中小規模營運。
五、常見問題
Q:瀏覽器指紋和 Cookie 有什麼區別?
Cookie 是網站寫入你本機的檔案,可以在瀏覽器設定中刪除。指紋是網站根據你裝置的硬體和軟體特徵即時計算的,不存於本機,刪不掉。無痕模式同樣無法阻止指紋採集。
Q:無痕/隱私模式能防止指紋追蹤嗎?
不能。無痕模式只阻止瀏覽器保存瀏覽歷史和 Cookie 等本機數據,Canvas、WebGL、字型列表、螢幕解析度這些裝置特徵 JavaScript 依然能讀取。在風控系統看來,無痕模式和普通模式的指紋沒有區別。
Q:檢測工具顯示指紋唯一性很高,需要擔心嗎?
普通用戶不用在意,唯一性高只是說明裝置配置比較有辨識度,並不直接等於不安全。但多帳號營運場景下,指紋太獨特反而容易被平台標記,理想的指紋應該是常見配置,不引人注意。
Q:只改 User-Agent 夠嗎?
遠遠不夠。User-Agent 是最表層的資訊,平台真正的判斷依靠 Canvas、WebGL、字型列表這些硬體級特徵。如果把 UA 改成 macOS 但 Canvas 渲染結果暴露 Windows 顯卡特徵,數據衝突本身就會被風控系統標記為異常。
Q:能徹底消除指紋嗎?
不能。瀏覽器正常顯示網頁就必須暴露基礎資訊,而且指紋殘缺本身就是可疑訊號。正確的做法不是隱藏指紋,而是生成看起來真實且彼此隔離的指紋環境,讓每個視窗像來自不同的真實裝置。



