订阅本栏目 RSS您所在的位置: 深山工作室 > HTML > 正文

javascript获取浏览器指纹可以用来做投票

2024/8/26 11:38:17 字体: 浏览 63

有些网站是会员制,而且对会员所用的机器会有一个绑定,这就意味着一个用户只能在固定的机器上或浏览器上登陆,如果换了电脑或浏览器那很不幸,请联系商家解绑,类似的还有某些企业通过下载终端的方式进行绑定,当然这样对用户体验有很大的影响,总而言之都是为了保护企业的利益,你懂的!言归正传,既然说到绑定机器,那他们是怎么实现的呢?当然方法很多,今天我们说一下通过获取浏览器指纹的方式来识别用户是否更换了机器(尝试用js获取用户物理地址的还是放弃吧,IE可能还给你点机会, 反正我是不想再研究了,能力有限).

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.staticfile.org/fingerprintjs2/2.1.0/fingerprint2.min.js"></script>
    <script>
        function finger() {
            let excludes = {};
            excludes.audio = true;
            excludes.fontsFlash = true;
            excludes.webgl = true;
            excludes.canvas = true;
            excludes.enumerateDevices = true;
            let options = {excludes: excludes};
            Fingerprint2.get(options, function (components) {
                const values = components.map(function (component) {
                    return component.value
                });
                const murmur = Fingerprint2.x64hash128(values.join(''), 31);
                alert(murmur)
            });
        }
    </script>
</head>
<body>
<button onclick="finger()">点击</button>
</body>
</html>


代码很简单,有点前端基础的都能看懂,这里主要是利用了前端 fingerprint2这个库来实现,这里我主要通过audio,fontsFlash,webgl,canvas,enumerateDevices这几项来识别的,返回的是一个MD5值,可以尝试清除缓存刷新,发现它是不会变化的,如果换个浏览器或换台机器,它会返回不同的值,当然配置项不止这几个,可以根据自己的实际情况配置,获取到用户浏览器指纹再加上用户的ip就可以防止用户使用代理ip对信息进行采集,具体实现也不多说了.

userAgent: navigator.userAgent
language: 语言
colorDepth: 返回目标设备或缓冲器上的调色板的比特深度 screen.colorDepth
deviceMemory: 以千兆字节为单位返回设备内存量。该值是通过舍入到最接近的2的幂并将该数除以1024而给出的近似值
pixelRatio: 像素比 devicePixelRatio
hardwareConcurrency: navigator.hardwareConcurrency 返回可用于运行在用户的计算机上的线程的逻辑处理器的数量
screenResolution: 检测屏幕宽高,并根据屏幕方向矫正返回值[width,height]
availableScreenResolution: 返回屏幕分辨率[width,height],无头浏览器无法获取
timezoneOffset: 返回从当前区域设置(主机系统设置)到UTC的时区差异(以分钟为单位)
timezone: 时区
sessionStorage: 是否支持 sessionStorage,不支持时返回错误
localStorage: 是否支持 localStorage
indexedDb: 是否支持 indexedDb
addBehavior :此时可能未定义body或以编程方式删除
openDatabase: 返回是否支持 Web SQL
cpuClass: 返回浏览器系统的 CPU 等级,一般无法获取
platform: 返回表示浏览器平台的字符串,该规范允许浏览器始终返回空字符串,因此不要依赖此属性来获得可靠的答案
doNotTrack: 返回用户的“不跟踪”设置。如果用户请求不被网站,内容或广告跟踪,则为“1”
plugins: 返回浏览器安装的插件列表
canvas: 如果浏览器支持canvas则返回生成baes64数据
webgl: 返回浏览器对webgl绘图协议的支持情况汇总
webglVendorAndRenderer: 返会显卡型号相关信息
adBlock: 返回是否安装去广告插件
hasLiedLanguages: 返回用户是否改变了首选语言
hasLiedResolution: 返回用户是否改变了分辨率
hasLiedOs: 返回用户是否改变了操作系统
hasLiedBrowser: 返回用户是否改变了浏览器
touchSupport: 返回最大触摸点数,是否支持touch,是否支持ontouchstart事件
fonts: 返回从64种字体种筛选出的可用字体
fontsFlash: Flash字体枚举,如果没有swfobject,不会触发
audio: 返回音频指纹
enumerateDevices: navigator.mediaDevices 请求可用媒体输入和输出设备的列表,例如麦克风,相机,耳机等


前一页:没有了
相关阅读
asp随机数字,可以当成随机验证码使用
超级实用且不花哨的js代码大全( 6 )
秀色摄影
一些在工作中收集的企业文化标语
九江市交通国际旅行社有限公司
asp利用XMLHTTP获取xml数据方法
汉字转声母
利用CSS样式美化Button或submit按钮
共有0条关于《javascript获取浏览器指纹可以用来做投票》的评论
发表评论
正在加载评论......
返回顶部发表评论
呢 称:
表 情:
内 容:
评论内容:不能超过 1000 字,需审核,请自觉遵守互联网相关政策法规。
验证码: 验证码 
网友评论声明,请自觉遵守互联网相关政策法规。

您发布的评论即表示同意遵守以下条款:
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家、社会、集体和公民的合法权益;
二、不得发布国家法律、法规明令禁止的内容;互相尊重,对自己在本站的言论和行为负责;
三、本站对您所发布内容拥有处置权。

更多信息>>栏目类别选择
百度小程序开发
微信小程序开发
微信公众号开发
uni-app
asp函数库
ASP
DIV+CSS
HTML
python
更多>>同类信息
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
DW设置之后更好用 DreamweaverCS编辑GB2312与UTF-8文件在代码视图中点击鼠标错位问题的解决办法
js指定日期加n天加n月加n年
jquery中动态生成的代码使用on hover事件时不出现效果
iframe里阻止_blank弹出新窗口的方法
更多>>最新添加文章
抖音直播音挂载小雪花 懂车帝小程序
javascript获取浏览器指纹可以用来做投票
火狐Mozilla Firefox出现:无法载入您的Firefox配置文件 它可能已经丢失 或是无法访问 问题解决集合处理办法
在Android、iOS、Windows、MacOS中微信小程序的文件存放路径
python通过代码修改pip下载源让下载库飞起
python里面requests.post返回的res.text还有其它的吗
aliyun阿里云续费域名优惠口令(注册、续费都可以使用)
windows7环境下安装配置jdk
更多>>随机抽取信息
苏欧装饰
一个可以说是超级变态,超级强的DIV+CSS应用
利用css设置div漂浮在底部或顶部
重新设定目标与学习方法,好记忆不如烂笔头
静态网站利用微信URL Scheme生成的ticket从浏览器h5跳到微信小程序完整代码
asp之自动闭合HTML标签函数