LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

fingerprint2生成的用戶指紋重復踩坑

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

fingerprint2 一款開源設備指紋采集器,在github上有7k的Star,看起來是那么的讓人放心,今天聊一聊我們在使用這個庫中猜到的坑。

本篇所講的fingerprint2版本為2.0.6

生成的指紋大面積重復問題!!!

生成的指紋大面積重復問題!!!

生成的指紋大面積重復問題!!!

重要的問題講三次。

fingerprint2會取的設備信息

*獲取不到值時返回: not available #獲取不到值時返回: error

  1. userAgent:navigator.userAgent

  2. language : 語言

  3. colorDepth: 返回目標設備或緩沖器上的調色板的比特深度 screen.colorDepth *

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

  5. pixelRatio: 像素比 devicePixelRatio  *

  6. hardwareConcurrency:navigator.hardwareConcurrency返回可用于運行在用戶的計算機上的線程的邏輯處理器的數量 *

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

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

  9. timezoneOffset: 返回從當前區域設置(主機系統設置)到UTC的時區差異(以分鐘為單位)鏈接

  10. timezone:時區 *

  11. sessionStorage: 是否支持sessionStorage,不支持時返回錯誤 #

  12. localStorage: 是否支持localStorage #

  13. indexedDb:是否支持indexedDb #

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

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

  16. cpuClass:返回瀏覽器系統的 CPU 等級,一般無法獲取 *

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

  18. doNotTrack: 返回用戶的“不跟蹤”設置。如果用戶請求不被網站,內容或廣告跟蹤,則為“1”。一般結果為* 。

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

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

  21. webgl:返回瀏覽器對webgl繪圖協議的支持情況匯總 *

  22. webglVendorAndRenderer: 返會顯卡型號相關信息 *

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

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

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

  26. hasLiedOs:返回用戶是否改變了操作系統

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

  28. touchSupport: 返回最大觸摸點數,是否支持touch,是否支持ontouchstart事件]

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

  30. fontsFlash:Flash字體枚舉,如果沒有swfobject,不會觸發。

  31. audio: 返回音頻指紋

  32. enumerateDevices:navigator.mediaDevices 請求可用媒體輸入和輸出設備的列表,例如麥克風,相機,耳機等

工作邏輯

  1. 取到以上值后[數組],將數組轉為值字符串

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

指紋重復原因

x64hash128算法是固定的,所以在key相同的時,生成的指紋是相同的。 fingerprint2在手機上重復的概率會更高,絕大多數用戶不會去修改手機的配置,所以重復指紋主要在發生在同一型號的產品。

推薦解決生成指紋重復方案

因為我們主要面對移動終端用戶,所以fingerprint2生成的值出現大面積重復(實踐中的血與淚)。

  • 通過接口獲取用戶ip值。

  • FingerPrint2繼續使用默認配置,在傳入的key中手動添加IP條件。

Fingerprint2.get(components=>{

   components.push({

       key:'ip',

       value:'192.168.1.1' //通過接口獲取的到ip

   });

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

})

加入ip信息,可以在很大程度上規避同型號的產品生成指紋信息相同的場景,切記不是百分之百。比如同一型號設備在同一wifi下生成的指紋信息也是有很大概率相同的。

結言

現在瀏覽器提供的設備信息越來越少,跟蹤用戶信息這只是一個思路,如果大家有奇技淫巧,歡迎交流。


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

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
无遮挡在线看国产 | 中文字幕无线码一区高清 | 中文字幕亚州综合 | 自拍偷拍亚洲一区 | 亚洲七月丁香婷婷婷综合 | 日本少妇爽的嗷嗷叫视频 |