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