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); //a hash, representingyour device fingerprint console.log(components); // an array of FPcomponents }); |
用户可以传递一个带有如下选项的对象:
|
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){ // this will use all available fingerprintingsources console.log(result); // components is an array of allfingerprinting components used console.log(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文件的重新编译
|
2、解压,向$PATH变量中添加bin/目录 3、运行make命令 |
License
MIT或Apache
华盟君