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