fingerprint 是一个获取浏览器指纹标识符的插件

fingerprint 是一个获取浏览器指纹标识符的插件

FingerprintJS 是一个获取浏览器指纹标识符的插件,可以匿名识别用户的浏览器并生成一个浏览器指纹标识符,实现同一个用户浏览器打开不同的域名网站获取的浏览器指纹标识符是一致的。

什么是浏览器指纹?

其实这是 Electronic Frontier Foundation 研究出来的技术,可以匿名识别 Web 浏览器,准确率高达94%。通过查询浏览器的代理字符串,屏幕色深,语言,插件安装与支持的 MIME 类型,时区偏移量和其他功能,如本地存储和会话存储等等,然后这些值通过散列函数传递产生指纹,不需要通过 Cookie 存储就可以识别浏览器。

IE浏览器的识别

通过检测浏览器安装的插件来识别是浏览器指纹重要的特征,然后在 IE 浏览器中,不可能只去检测浏览器列表和它们的 MIME 类型,因此需要设置 ie_activex: true 选项,这样 FingerprintJS 将会检测一下插件:

Adobe Reader
Adobe Flash Player
Apple QuickTime
Real player (all versions)
Shockwave player
Windows Media Player
Microsoft Silverlight
Skype ClickToCall

安装方式

1、cdn

<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/fingerprint.js"></script>

2、npm

npm install fingerprintjs

使用

var fingerprint = new Fingerprint().get();

如果你想使用 Canvas FingerPrinting,则如下调用:

var fingerprint = new Fingerprint({canvas: true}).get();

如果你想使用屏幕分辨率计算指纹,则需如下调用:

var fingerprint = new Fingerprint({screen_resolution: true}).get();

使用自定义的哈希函数

var my_hasher = new function(value, seed){ return value.length % seed; };
var fingerprint = new Fingerprint({hasher: my_hasher}).get();

或者直接传递方法:
var my_hasher = new function(value, seed){ return value.length % seed; };
var fingerprint = new Fingerprint(my_hasher).get();

示例代码:

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">






    <style>
        @import url("https://fonts.googleapis.com/css?family=Montserrat:400,400i,700");
        
        body{
          background-color: #212121;
          color: white;
          margin: 200px auto;
          font-family: Montserrat, sans-serif;
          text-align: center;
        }
        
        a {
          color: white;
        }
        
        p {
          padding: 5px;
          margin: 0px;
          font-size: 15px;
        }
        
        p.bold {
          font-weight: bold;
          font-size: 20px;
        }
    </style>



</head>

<body>
    <p class="bold">Fingerprint:</p>
    <p id="fill"></p>
    <br>

    <script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/fingerprint.js"></script>

    <script>
        window.onload = function(){
          document.getElementById('fill').innerHTML = new Fingerprint().get();
        }
    </script>



</body>

</html>


github地址:http://valve.github.io/fingerprintjs/

立即下载fingerprint.js查看所有js插件

网友评论0

程序员在线工具箱