依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 86|回复: 0

一个浏览器指纹识别库,强的有点让人害怕!

[复制链接] 主动推送

2076

主题

2083

帖子

3214

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3214
发表于 2024-10-6 15:37:07 | 显示全部楼层 |阅读模式
一个浏览器指纹识别库,强的有点让人害怕!
如同四季分阴阳,日分黑白,很多事物都存在正反两面。在IT信息安全领域也同样存在正反。比如:

  • 用户和软件厂商:用户注重隐私安全,不允许软件获取个人信息和操作权限等。软件供应商希望获取用户信息和操作记录,以此能够做定向推广和业务决策;
  • 白帽黑客和黑帽黑客:白帽使用其技能来识别和修复安全漏洞,黑帽利用系统漏洞盗窃数据、破坏系统等;
  • 攻防演练的红队蓝队:红队使用各种攻击技术和策略来尝试渗透系统,以发现潜在的安全漏洞,蓝队负责防御红队的攻击,保护系统不受侵害;
  • 数据的加密和解密:一系统需要将数据进行复杂加密存储,防止外在程序的窃取,而某些系统则需要对数据解密,用于特点的场景下数据分析。

无论Neko还是SearXNG,都是从保护个人隐私角度出发,用户在使用浏览器的同时避免个人隐私信息的泄漏。企业希望用户在使用软件的时候,获取到各种的用户信息,比如有多少人访问了网站,访问地址来源于哪些地方,访问人群的分类,是否有重复访问等情况。因为这些数据能够帮助企业制定更好的运营策略,广告投发等等。

所以,从企业角度来说,会采用各种技术获取用户的信息,即使用户采取的一些安全防护隐私的方法和手段。这也是一种安全层面的正反和技术对抗!

而今天主要介绍的就是一个浏览器指纹识别库-fingerprintjs

PS:浏览器指纹是一种用于识别和追踪设备的技术,它通过收集用户浏览器和设备的多种属性(如用户代理、屏幕分辨率、插件列表、字体、Canvas和WebGL特性等)来生成一个独特的标识符,用于识别和区分用户。
fingerprintjs 介绍
一个开源的JavaScript库,它通过收集用户浏览器的多种属性(如屏幕分辨率、浏览器插件、字体、Canvas和WebGL等)来生成一个独特的浏览器指纹,用于识别和追踪用户。

项目信息
  1. #Github地址
  2. https://github.com/fingerprintjs/fingerprintjs
复制代码
功能特性
  • 高度准确:能够生成高度准确的浏览器指纹,专业版准确率高达99.5%。
  • 多种数据源:从多个数据源收集信息,包括但不限于用户代理、屏幕分辨率、系统字体、WebGL、Web Audio、Canvas 等。
  • 轻量级:库的体积相对较小,不会显著增加网页的加载时间。
  • 易于集成:作为一个JavaScript库,可以很容易地集成到现有的网站和应用程序中。
  • 实时生成:在用户访问网站时实时生成指纹,无需额外的服务器处理。
  • 跨浏览器兼容性:支持所有主流浏览器,包括 Chrome、Firefox、Safari、Edge 等。
  • 安全:生成的指纹通常是加密的,以减少数据泄露的风险。
  • 自定义:开发者可以根据自己的需求选择性地启用或禁用某些数据收集功能,以符合特定的隐私政策或法律要求。

Demo效果
  1. #获取当前访问浏览器指纹的demo网址
  2. https://fingerprintjs.github.io/fingerprintjs/
复制代码

一个浏览器指纹识别库,强的有点让人害怕!

一个浏览器指纹识别库,强的有点让人害怕!


fingerprintjs 使用
  • 可以通过 CDN 引入 FingerprintJS 到项目中

  1. <script src="https://cdn.jsdelivr.net/npm/@fingerprintjs/fingerprintjs@3.3.2/dist/fp.min.js"></script>
  2. <script>
  3.   async function getFingerprint() {
  4.     const result = await FingerprintJS.load();
  5.     const visitorId = await result.get();
  6.     console.log(visitorId.visitorId); // 打印生成的指纹
  7.   }

  8.   getFingerprint();
  9. </script>
复制代码
  • 也可以通过 npm 或 yarn 将其安装到项目中


  1. #npm安装
  2. npm install @fingerprintjs/fingerprintjs

  3. #JavaScript 代码中使用
  4. import FingerprintJS from '@fingerprintjs/fingerprintjs';

  5. async function getFingerprint() {
  6.   const result = await FingerprintJS.load();
  7.   const visitorId = await result.get();
  8.   console.log(visitorId.visitorId); // 打印生成的指纹
  9. }

  10. getFingerprint();
复制代码
  • 生成的指纹可以进行多种存储,例如:

可以将生成的指纹发送到服务器进行存储和分析。也可以将指纹存储在本地存储(如 localStorage)中,以便在用户的后续访问中使用。

  • 完整的示例



  1. # 以下是一个示例,展示了如何将生成的指纹发送到服务器:
  2. import FingerprintJS from '@fingerprintjs/fingerprintjs';

  3. async function getFingerprint() {
  4.   const result = await FingerprintJS.load();
  5.   const visitorId = await result.get();

  6.   // 发送指纹到服务器
  7.   fetch('/api/fingerprint', {
  8.     method: 'POST',
  9.     headers: {
  10.       'Content-Type': 'application/json',
  11.     },
  12.     body: JSON.stringify({ fingerprint: visitorId.visitorId }),
  13.   })
  14.   .then(response => response.json())
  15.   .then(data => console.log(data))
  16.   .catch((error) => console.error('Error:', error));
  17. }

  18. getFingerprint();
复制代码
  • 配置选项

FingerprintJS 还提供了一些配置选项,允许自定义指纹生成过程。例如,可以排除某些组件:


  1. import FingerprintJS from '@fingerprintjs/fingerprintjs';

  2. async function getFingerprint() {
  3.   const options = {
  4.     exclude: {
  5.       deviceType: true,
  6.       userAgent: true,
  7.     },
  8.   };

  9.   const result = await FingerprintJS.load(options);
  10.   const visitorId = await result.get();
  11.   console.log(visitorId.visitorId);
  12. }

  13. getFingerprint();
复制代码
最后特别说明
由于浏览器指纹涉及收集用户的敏感信息,因此在使用时应确保遵守隐私法规和用户同意,并采取适当的措施来保护用户的隐私。





相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员5折;永久VIP免费
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2024-11-24 00:25

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

快速回复 返回顶部 返回列表