Fingerprint2 是一款開源的設備指紋生成器。主要用于判斷用戶是否是新增用戶,或者判斷設備是否為新增訪問設備。
在項目中應用:
1、npm下載Fingerprint2庫:
npm install fingerprintjs2 -S
2、在項目中引入Fingerprint2:
import Fingerprint2 from ‘fingerprintjs2’
定義生成指紋函數,設置生成指紋的排除項excludes,代碼如下:
3、關于排除項excludes的字段說明:
excludes內包含的字段參數即生成的指紋不包括的內容,console.log() Fingerprint2.get()方法中的components可以看到獲取的內容。
在components內可以key:value的格式push一些自定義字段
各字段代表的含義:
userAgent: navigator.userAgent
language : 語言
colorDepth: 目標設備或緩沖器上的調色板的比特深度 screen.colorDepth
deviceMemory: 設備內存
pixelRatio: 像素比
hardwareConcurrency:navigator.hardwareConcurrency 可用于運行在用戶的計算機上的線程的邏輯處理器的數量
screenResolution: 屏幕寬高
availableScreenResolution: 屏幕分辨率
timezoneOffset: 本機時間與GTM時間的時差
timezone: 時區
sessionStorage: 是否支持sessionStorage
localStorage: 是否支持localStorage
indexedDb: 是否支持indexedDb
addBehavior: 是否指定AddBehavior
openDatabase: 是否支持Web SQL
cpuClass: 瀏覽器系統的 CPU 等級
platform: 瀏覽器運行的操作系統和硬件平臺
doNotTrack: do-not-track設置
plugins: 瀏覽器插件列表
canvas: 是否支持canvas
webgl: 瀏覽器對webgl繪圖協議的支持情況匯總 *
webglVendorAndRenderer: 顯卡型號相關信息 *
adBlock: 是否安裝插件adBlock(去廣告)。
hasLiedLanguages: 用戶是否改變了首選語言
hasLiedResolution: 用戶是否改變了分辨率
hasLiedOs: 用戶是否修改操作系統
hasLiedBrowser: 用戶是否修改瀏覽器
touchSupport: 觸屏檢測
fonts:返回從64種字體種篩選出的可用字體
fontsFlash:Flash列表。
audio: 音頻指紋
enumerateDevices:navigator.mediaDevices 支持的媒體輸入輸出設備信息
4、一些不足:
同型號設備同瀏覽器獲取到的指紋會一致。
就算加網絡IP字段,在同型號設備同瀏覽器同網絡的情況下生成的指紋也會一致。
該文章在 2023/8/4 1:09:20 編輯過