詞彙表·指紋識別
畫布指紋識別
透過渲染 HTML 畫布繪圖的微小差異來識別裝置。
定義
Canvas 指紋辨識是一種頁面使用 HTML Canvas API 繪製文字或形狀並讀回結果像素的技術。由於渲染取決於 GPU、圖形驅動程式、字體和抗鋸齒,因此裝置之間的輸出可能略有不同,且其雜湊值會成為指紋訊號。
它是如何運作的
- 腳本建立一個畫布元素(通常不可見)並使用 2D 上下文繪製文字、表情符號、漸層或形狀。
- 它使用 toDataURL()(將圖像作為資料 URL 傳回)或 getImageData() 等方法讀取結果。
- 像素資料經過哈希處理。相同的設定往往會產生相同的雜湊值;不同的硬體或字體堆疊通常不會。
為什麼這很重要
- 它不需要權限提示並且無需cookie即可工作,因此被廣泛用於追蹤和反詐騙腳本。
- 這是指紋瀏覽器和注重隱私的瀏覽器試圖透過使輸出一致或添加雜訊來控制的訊號之一。
限制和常見誤解
- 「只有畫布才能識別我。」這是一個訊號;它通常與其他內容結合使用,例如 WebGL、字體和螢幕資料。
- 「添加隨機雜訊是看不見的。」每次讀取時變化的雜訊本身可以透過繪製相同的影像兩次並進行比較來檢測。
範例: 在具有整合顯示卡的筆記型電腦和具有獨立 GPU 的桌上型電腦上以相同的字體繪製相同的句子可能會產生肉眼看不見的像素差異,但在散列時會產生不同的像素差異。
沒有瀏覽器或代理可以保證帳戶不會受到限制。遵守各平台的規則。
相關術語
- 瀏覽器指紋 — 瀏覽器和裝置特性的組合,可辨識沒有 cookie 的瀏覽器。
- WebGL 指紋識別 — 使用 WebGL 圖形資訊和渲染輸出來識別設備。
來源
- MDN:畫布 API (瀏覽器文件)
- MDN:HTMLCanvasElement.toDataURL() (瀏覽器文件)
- W3C:減輕 Web 規格中的瀏覽器指紋識別 (標準)
檢查了2026-11-07。