您现在的位置是:首页 > 正文

浏览器指纹js代码实现重写(WebRtc,WebGl,Rect,Audio)

2024-02-01 00:43:35阅读 2
    JS获取浏览器的指纹,个人总结如下几个方案

1、Canvas:用Canvas画一张10X10像素的图片,随便找几个位置加写黑点。把这张图片转成base64字符串,用360浏览器和谷歌浏览器得到的结果,是不一样的,2台不同电脑的360浏览器结果也不一样。我自己想,应该是生成一张图片,关系到浏览器,主板,显卡,cpu都有参与,所以稍微有点不一致,base64的结果就会有出入。

2、Plugins:获取浏览器的navigator.plugins(浏览器插件)

3、UserAgent:最典型的UA

4、Audio:和canvas类似,把一段音频转成base64,不同环境会有差异

5、Font:通过获取你本地电脑所有的字体,来生成一段指纹。但是js哪有读取字体的功能呢,这个就比较妖了。首先先把全世界的所有字体名字都找出来(假设有100个),然后定义100个span,每个span一个字体,然后再获取这些span的宽度,如果这些字体存在,那么和不存在的字体,宽度是不一样的,比如m、l这种字母,不同字体的宽度是不同的。这是css字体。还有canvas字体,逻辑也是类似,用canvas创建一个字符串,然后定义不同字体获取宽度。

6、Rect:定义一块区域,让这块区域是斜的,然后求这块区域的坐标和宽高。因为这个可以精确到小数点好多位,所以不同环境下的结果也会稍有不同。

7、WebGl:和canvans类似,也是画图,看base64结果

8、WebRtc:这个其实不是浏览器指纹,但是用他的目的是和指纹一样,为了识别客户端的唯一新。这东西能获取到你的真实IP(就是你挂了代理,也能获取得到)。我一开始觉得这太牛逼了吧,细研究发现原理其实很简单,这东西用了一个新的协议stun,代理代的是http协议,所以自然和stun协议不挨着,stun协议在谷歌控制台里也没显示,所以很容易忽略。

现在有很多指纹浏览器,通过对chrome的二次开发,实现指纹重写。但是感觉太重了,完全可以用纯js来实现这个东西

通过几天的学习,做了一个浏览器插件(其实就是纯js代码),来实现指纹重写
在这里插入图片描述
功能其实比较简单(我也没想出啥什么牛逼功能,有需要的可以留言,好建议就改)
1,创建环境,设置要重写哪些项目
2,查看当前网站是否用了指纹检测,注意,这个检测只是参考,因为网站可能就用了这个功能,所以要自己去识别
3,清空cookie。这个虽然可指纹没啥关系,但是实际应该有用,如果cookie不换,只改了指纹,这不还是一个人
4,获取本机ip,这个只是为了验证webrtc可以在代理情况下获取本机ip

网站文章

  • 【JavaScript】函数参数-动态参数

    【JavaScript】函数参数-动态参数

    【JavaScript】函数参数-动态参数

    2024-02-01 00:43:29
  • 关于此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。error

    关于此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。error

    最近因为要做一个启动器,发现有错误如下:错误 1 未知的生成错误“此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。 行 8 位置 3.” c:\users\tinayh\documents\visual studio 2013\Projects\WpfApplication1\WpfApplication1\App.xaml 8 3 WpfApplication1...

    2024-02-01 00:43:20
  • Python:pip 用命令行更改源

    先放命令:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple一些国内的源:阿里云 http://mirro...

    2024-02-01 00:43:14
  • python实现三维坐标旋转计算

    python实现三维坐标旋转计算

    空间三维坐标系旋转计算计算空间三维坐标系变换一般都是利用旋转矩阵或者欧拉公式。python有个scipy库可以直接用于计算空间三维坐标变换。支持库pip install scipy旋转矩阵计算代码ax...

    2024-02-01 00:42:46
  • JS高级 迭代器-生成器:Iterator-Generator

    JS高级 迭代器-生成器:Iterator-Generator

    写一个针对数组的初级迭代器在函数里面定义了一个iterator对象,里面有next方法,返回值是一个包含done与value的对象,这就是一个迭代器。

    2024-02-01 00:42:39
  • 一文带你入门Python

    一文带你入门Python

    Python入门1.简介2.变量、运算符与数据类型2.1.注释2.2.运算符2.2.1.算术运算符2.2.2.比较运算符2.2.3.逻辑运算符2.2.4.位运算符2.2.5.三元运算符2.2.6.其他...

    2024-02-01 00:42:31
  • 【Ruby学习笔记】18.Ruby 数据库访问 - DBI 教程

    【Ruby学习笔记】18.Ruby 数据库访问 - DBI 教程

    本章节将向您讲解如何使用 Ruby 访问数据库。Ruby DBI 模块为 Ruby 脚本提供了类似于 Perl DBI 模块的独立于数据库的接口。

    2024-02-01 00:42:05
  • 因为月薪过高,我的工资发放失败了。。。

    因为月薪过高,我的工资发放失败了。。。

    上一篇:国家数据局正式揭牌!首次招聘启动!来源:稀土掘金作者:野生的码农码农卫师傅,在忙碌地写了一个月 bug 后,迟迟未能收到工资,紧接着又经历了20元巨款的不翼而飞。这究竟是道德的沦丧,还是人性的...

    2024-02-01 00:41:58
  • Android 音频开发——AudioTrack播放

     AudioTrack类用来管理、播放单个音频资源,它只能播放PCM数据,其他音频格式(aac、amr、opus、flac等)需要经过解码成PCM才能使用。运行模式AudioTrack可以运行两种模式...

    2024-02-01 00:41:50
  • 网站服务器内存满了,云服务器内存满了怎么办

    网站服务器内存满了,云服务器内存满了怎么办

    很多站长在使用云服务器的时候,总是会遇到内存不足的情况,这种现象就是我们在家用电脑时的内存不足时一样,令人烦恼,因为内存不足,将影响正常的使用,它是服务器的核心点,那么云服务器内存满了怎么办?有没有可...

    2024-02-01 00:41:20