Fingerprintjs2是一款開源的設備指紋采集器。最初的fingerprintjs庫創建于2012年,但是由于新版本的開發很難保持向后兼容,因此Fingerprintjs2項目中增加了很多的新內容。
該項目將更多、更有效的來源用于指紋識別,并且可配置,也就是說用戶可以選擇性地開啟其中的選項。該項目還將重點關注IE插件,尤其是在中國流行的QQ、Baidu等。另外,該項目使用了semver(語義化的版本控制系統)。
安裝
使用CDN在線獲取:
https://cdnjs.com/libraries/fingerprintjs2
使用bowerinstall命令進行安裝:
bowerinstall fingerprintjs2
使用npminstall命令進行安裝:
npm installfingerprintjs2
用例
newFingerprint2().get(function(result, components){
console.log(result);
用戶可以傳遞一個帶有如下選項的對象:
varoptions = {swfPath: '/assets/FontList.swf', excludeUserAgent: true};
newFingerprint2(options).get(function(result){
console.log(result);
});
選項的完整列表
由于Flash在隱身模式下是不工作的,因此默認情況下,Flash字體枚舉是禁用的,并且使用JS代碼獲取可用的字體列表。但是,當檢測到“excludeJsFonts: true”選項時該庫會開始使用Flash。
如果要使用Flash字體枚舉,請確保swfobject可用,否則該庫會直接跳過Flash部分。
為了確保用戶轉動設備時,指紋識別的一致性,detectScreenOrientation選項默認情況下為true。
所有的指紋資源都是默認可用的,因此用戶不需要去特別配置。
newFingerprint2().get(function(result, components){
查看本地指紋資源
用戶可以通過啟動網絡服務器并瀏覽index.html頁面來查看本地指紋資源。由于Flash的ExternalInterface安全限制,index.html頁面不能從本地文件系統加載。
通過以下方式開啟網絡服務器:
Ruby1.9.2+
ruby-run -e httpd . -p 8080
Python2.x
python-m SimpleHTTPServer 8080
Python3.x
python-m http.server 8080
PHP5.4+
php -S0.0.0.0:8080
指紋資源列表
1、User Agent
2、語言
3、顏色深度
4、屏幕分辨率
5、時區
6、是否具有會話存儲
7、是否具有本地存儲
8、是否具有索引DB
9、IE是否指定AddBehavior
10、是否有打開的DB
11、CPU類
12、平臺
13、是否DoNotTrack
14、已安裝的Flash字體列表
15、使用JS/CSS檢測到的字體列表(最多可檢測到Flash之外的500種字體)
16、Canvas指紋
17、WebGL指紋
18、瀏覽器的插件信息
19、是否安裝AdBlock
20、用戶是否篡改了語言
21、用戶是否篡改了屏幕分辨率
22、用戶是否篡改了操作系統
23、用戶是否篡改了瀏覽器
24、觸摸屏檢測和能力
一般情況下,JS字體檢測最多可檢測65種已安裝的字體。用戶可通過使用extendedFontList: true選項提升字體檢測能力,可提升到500種。
更多指紋資源
1、多顯示器檢測
2、Silverlight集成
3、Flash linux內核版本
4、內部哈希表執行檢測
5、WebRTC指紋
6、Math常數
7、可訪問性指紋
8、相機信息
9、DRM支持
10、加速器支持
11、虛擬鍵盤
12、手勢列表(觸摸設備)
13、像素密度
14、視頻和音頻編解碼器的可用性
FontList.swf文件的重新編譯
1、下載Adobe Flex SDK
2、解壓,向$PATH變量中添加bin/目錄
3、運行make命令
License
MIT或Apache
該文章在 2023/8/4 1:12:29 編輯過