做多帳號的朋友,多半被提醒過「顯示卡資訊是重點指紋之一」,但很少有人告訴你它到底怎麼暴露、為什麼這麼難防。
舉個真實場景:你在同一台電腦上用 Chrome 登入店鋪 A,用 Edge 登入店鋪 B,以為「瀏覽器都換了,肯定沒問題」。結果平台還是把兩個號判定為關聯 —— 因為 Chrome 和 Edge 用的是同一個 GPU,報出的顯示卡型號一模一樣。
這個「顯示卡型號」,就是 WebGL 指紋。
WebGL 指紋是瀏覽器透過 GPU 渲染能力採集到的硬體標識 —— 它不像 Canvas 那樣「畫圖後測像素差異」,而是直接向你索取顯示卡的名字和參數。 瀏覽器指紋是由幾十項參數組成的(整體原理在什麼是瀏覽器指紋這篇科普裡講過),WebGL 是其中「最誠實」的一項:它幾乎不給你偽裝的機會。
Canvas 指紋是「間接量測」 —— 讓你畫一幅圖,再對比像素細節;WebGL 指紋是「直接自報家門」 —— 瀏覽器直接問 GPU 要廠商名和型號。前者靠猜,後者靠問。
所以如果平台要選一個「最省事的關聯證據」,WebGL 常年排在前列。
整個採集過程只需要一行 JavaScript,兩步完成:
WEBGL_debug_renderer_info 擴充功能,讀出兩個欄位:UNMASKED_VENDOR_WEBGL(顯示卡廠商,如 "NVIDIA Corporation")和 UNMASKED_RENDERER_WEBGL(顯示卡型號,如 "NVIDIA GeForce GTX 1650 / PCIe / SSE2")。這兩個欄位是「未遮罩」的原始值,Chrome、Firefox、Edge 都預設允許讀取。這裡有一個很多人不知道的細節:換瀏覽器沒用。 Chrome、Edge、Firefox 的核心不同,但底層呼叫的都是同一個 GPU 驅動。我第一次用 Chrome 和 Edge 分別測同一台電腦的 WebGL 資訊,顯示卡型號一字不差 —— 瀏覽器換了個遍,硬體還是那個硬體。

很多人只知道「顯示卡型號會被採集」,但具體採集了哪些欄位並不清楚。我整理了一份檢測網站會讀取的參數清單:
| 欄位 | 範例值 | 說明 |
|---|---|---|
| 顯示卡廠商 | NVIDIA Corporation | 來自 UNMASKED_VENDOR_WEBGL |
| 顯示卡型號 | NVIDIA GeForce GTX 1650 / PCIe / SSE2 | 來自 UNMASKED_RENDERER_WEBGL,連接埠和指令集都會帶出來 |
| GLSL 版本 | OpenGL ES GLSL 3.00 | 著色器語言版本,反映瀏覽器和驅動的能力組合 |
| 著色器精度 | Highp / Mediump / Lowp | 不同 GPU 支援的精度範圍不同 |
| 最大紋理尺寸 | 16384 | GPU 紋理能力上限,越高說明顯示卡越強 |
| 擴充功能清單 | ANGLE_instanced_arrays 等 | 支援的 WebGL 擴充功能項清單 |
| ANGLE 層 | ANGLE (NVIDIA, ...) | Chrome 透過 ANGLE 把 WebGL 請求轉譯給底層圖形 API,轉譯層版本也會暴露 |
看懂這張表,你就明白為什麼「改 UA」這類常規手段在 WebGL 面前完全無效 —— 它讀的是真實硬體參數,不是瀏覽器聲明。其中 ANGLE 層最容易忽略:它相當於瀏覽器和顯示卡之間的「翻譯官」,翻譯官的版本和實作方式,本身也是一條獨立的指紋資訊。
因為它在關聯檢測裡太好用了:
這也是為什麼風控系統做關聯判定時,WebGL 經常和 Canvas、字體清單一起作為「核心證據組」。
對不同行業來說,這條證據鏈的殺傷力也各不相同:跨境電商賣家多店鋪同裝置登入,顯示卡資訊一致就是關聯判定的實錘;社媒矩陣批量養號,幾十個帳號報出同一張顯示卡,等於主動暴露「背後是同一個團隊」;廣告投放多帳戶測試素材,帳戶一旦被關聯,預算和起量節奏全被打亂。無論哪個行業,只要帳號量上來,WebGL 都是繞不開的那道坎。
想看看你的顯示卡在瀏覽器眼裡長什麼樣,兩步即可:
MasBrowser 環境啟動後的運行資訊,標註 Fingerprint protection: Enabled 狀態

檢測的意義在於:如果你用普通瀏覽器登入多個帳號,所有帳號的 WebGL 資訊完全一致 —— 這就是平台做關聯判定時最有力的證據之一。
不需要代理、不需要額外工具,純本機就能驗證 WebGL 隔離有沒有生效:
這個驗證和 IP、代理完全無關 —— 哪怕兩個環境共用同一個網路出口,顯示卡資訊也是隔離的,這正是 WebGL 防護的意義所在。
先看幾個「看起來有用、實際沒用」的辦法:
真正可行的方向是在 WebGL 層面做「遮罩」:讓瀏覽器回傳一份與真實顯示卡不同的標識,或者對渲染參數做隨機化。指紋瀏覽器把這做成了開關 —— 以 MasBrowser 為例,建立環境時在指紋設定裡找到 WebGL 相關選項,可以選擇「隨機」產生一份合理的顯示卡配置,或按目標地區常見的顯示卡型號自訂。
開啟後,每個環境的 WebGL 廠商和型號都獨立產生,平台無法再透過「同一張顯示卡」把多個帳號串起來。完整的獨立環境與指紋隔離配置,可以在 MasBrowser 多帳號安全管理頁面 查看。
實際操作中有一個容易忽略的點:隨機產生的顯示卡配置要「合理」。 比如代理 IP 顯示目標地區是美國,隨機出來一台中國特供型號的顯示卡,反而顯得刻意。穩妥的做法是選「隨機」後人工確認一眼,或直接按目標市場主流顯示卡型號自訂。
另外兩個細節也值得留意:一是筆電往往有內顯和獨顯兩套 GPU,檢測結果可能隨驅動策略和電源狀態變化,環境建立後盡量別頻繁切換效能模式,保持指紋穩定;二是 Windows 更新顯示卡驅動後 WebGL 指紋可能變化,如果帳號已經穩定執行了一段時間,盡量別在營運期動驅動,避免「環境突變」觸發風控。
會,但頻率極低。只有換顯示卡、重裝顯示卡驅動(大版本更新)時,WebGL 資訊才會變化;平時保持穩定。這也是平台敢長期追蹤它的原因。
能,但代價很大 —— 很多網站(地圖、3D 展示、部分廣告驗證)依賴 WebGL 渲染,關掉後頁面功能受限甚至無法載入。相比之下,用指紋瀏覽器做「遮罩」是更優雅的方案。
在指紋瀏覽器裡改的是「上報給網站的顯示卡標識」,不是真的改顯示卡驅動,網頁 3D 渲染照常進行,不影響功能。
WebGPU 是新一代 GPU 運算 API,比 WebGL 能暴露更詳細的硬體資訊,未來會成為新的指紋維度。現在大多數網站仍以 WebGL 為主,但提前關注 WebGPU 防護是有必要的。
WebGL 指紋是瀏覽器指紋裡「最不會說謊」的一項 —— 它不靠你聲明什麼,而是直接讀取你顯示卡的真實身份。對普通用戶,它是私隱風險;對多帳號營運者,它是關聯判定的「主證據」,處理不好帳號就被一鍋端。
好在這項能力可以透過指紋瀏覽器做遮罩。免費版就有 2 個環境配額,下載 MasBrowser,建一個環境配置 WebGL 隨機化,再去檢測頁對比一下,你會直觀看到顯示卡資訊被隔離的效果。