狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

fingerprint2生成的用戶指紋重復(fù)踩坑

admin
2023年8月4日 0:53 本文熱度 822

fingerprint2 一款開(kāi)源設(shè)備指紋采集器,在github上有7k的Star,看起來(lái)是那么的讓人放心,今天聊一聊我們?cè)谑褂眠@個(gè)庫(kù)中猜到的坑。

本篇所講的fingerprint2版本為2.0.6

生成的指紋大面積重復(fù)問(wèn)題!??!

生成的指紋大面積重復(fù)問(wèn)題!??!

生成的指紋大面積重復(fù)問(wèn)題!??!

重要的問(wèn)題講三次。

fingerprint2會(huì)取的設(shè)備信息

*獲取不到值時(shí)返回: not available #獲取不到值時(shí)返回: error

  1. userAgent:navigator.userAgent

  2. language : 語(yǔ)言

  3. colorDepth: 返回目標(biāo)設(shè)備或緩沖器上的調(diào)色板的比特深度 screen.colorDepth *

  4. deviceMemory: 以千兆字節(jié)為單位返回設(shè)備內(nèi)存量。該值是通過(guò)舍入到最接近的2的冪并將該數(shù)除以1024而給出的近似值。鏈接  *

  5. pixelRatio: 像素比 devicePixelRatio  *

  6. hardwareConcurrency:navigator.hardwareConcurrency返回可用于運(yùn)行在用戶的計(jì)算機(jī)上的線程的邏輯處理器的數(shù)量 *

  7. screenResolution: 檢測(cè)屏幕寬高,并根據(jù)屏幕方向矯正返回值[width,height]

  8. availableScreenResolution:返回屏幕分辨率[width,height],無(wú)頭瀏覽器無(wú)法獲取。*

  9. timezoneOffset: 返回從當(dāng)前區(qū)域設(shè)置(主機(jī)系統(tǒng)設(shè)置)到UTC的時(shí)區(qū)差異(以分鐘為單位)鏈接

  10. timezone:時(shí)區(qū) *

  11. sessionStorage: 是否支持sessionStorage,不支持時(shí)返回錯(cuò)誤 #

  12. localStorage: 是否支持localStorage #

  13. indexedDb:是否支持indexedDb #

  14. addBehavior:此時(shí)可能未定義body或以編程方式刪除

  15. openDatabase: 返回是否支持Web SQL

  16. cpuClass:返回瀏覽器系統(tǒng)的 CPU 等級(jí),一般無(wú)法獲取 *

  17. platform: 返回表示瀏覽器平臺(tái)的字符串,該規(guī)范允許瀏覽器始終返回空字符串,因此不要依賴此屬性來(lái)獲得可靠的答案.鏈接 *

  18. doNotTrack: 返回用戶的“不跟蹤”設(shè)置。如果用戶請(qǐng)求不被網(wǎng)站,內(nèi)容或廣告跟蹤,則為“1”。一般結(jié)果為* 。

  19. plugins:返回瀏覽器安裝的插件列表。*

  20. canvas: 如果瀏覽器支持canvas則返回生成baes64數(shù)據(jù)。*

  21. webgl:返回瀏覽器對(duì)webgl繪圖協(xié)議的支持情況匯總 *

  22. webglVendorAndRenderer: 返會(huì)顯卡型號(hào)相關(guān)信息 *

  23. adBlock:返回是否安裝去廣告插件。

  24. hasLiedLanguages: 返回用戶是否改變了首選語(yǔ)言

  25. hasLiedResolution:返回用戶是否改變了分辨率

  26. hasLiedOs:返回用戶是否改變了操作系統(tǒng)

  27. hasLiedBrowser:返回用戶是否改變了瀏覽器

  28. touchSupport: 返回最大觸摸點(diǎn)數(shù),是否支持touch,是否支持ontouchstart事件]

  29. fonts:返回從64種字體種篩選出的可用字體

  30. fontsFlash:Flash字體枚舉,如果沒(méi)有swfobject,不會(huì)觸發(fā)。

  31. audio: 返回音頻指紋

  32. enumerateDevices:navigator.mediaDevices 請(qǐng)求可用媒體輸入和輸出設(shè)備的列表,例如麥克風(fēng),相機(jī),耳機(jī)等

工作邏輯

  1. 取到以上值后[數(shù)組],將數(shù)組轉(zhuǎn)為值字符串

  2. 將取到的字符串做為key 傳入x64hash128方法,生成指紋

指紋重復(fù)原因

x64hash128算法是固定的,所以在key相同的時(shí),生成的指紋是相同的。 fingerprint2在手機(jī)上重復(fù)的概率會(huì)更高,絕大多數(shù)用戶不會(huì)去修改手機(jī)的配置,所以重復(fù)指紋主要在發(fā)生在同一型號(hào)的產(chǎn)品。

推薦解決生成指紋重復(fù)方案

因?yàn)槲覀冎饕鎸?duì)移動(dòng)終端用戶,所以fingerprint2生成的值出現(xiàn)大面積重復(fù)(實(shí)踐中的血與淚)。

  • 通過(guò)接口獲取用戶ip值。

  • FingerPrint2繼續(xù)使用默認(rèn)配置,在傳入的key中手動(dòng)添加IP條件。

Fingerprint2.get(components=>{

   components.push({

       key:'ip',

       value:'192.168.1.1' //通過(guò)接口獲取的到ip

   });

   let murmur = Fingerprint2.x64hash128(components.join(""), 31); //生成指紋信息

})

加入ip信息,可以在很大程度上規(guī)避同型號(hào)的產(chǎn)品生成指紋信息相同的場(chǎng)景,切記不是百分之百。比如同一型號(hào)設(shè)備在同一wifi下生成的指紋信息也是有很大概率相同的。

結(jié)言

現(xiàn)在瀏覽器提供的設(shè)備信息越來(lái)越少,跟蹤用戶信息這只是一個(gè)思路,如果大家有奇技淫巧,歡迎交流。


該文章在 2023/8/4 0:53:20 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved