一、指纹浏览器的原理与应用
熟悉我的朋友知道去年一整年我都在卖自己写的程序,同时也在尝试写指纹浏览器,现在年末了,终于有空更新下博客了。已经一年没正式更新了,给大家准备个大活。打算把这一年经历的关于指纹浏览器方面的知识分享下,揭开指纹浏览器的神秘面纱。预计会做10期的系列教程,后续更新我会回来编辑这个帖子将帖子之间相互关联,尽请期待!
指纹浏览器系列教程目录:
一、指纹浏览器的原理与应用
二、浏览器指纹的检测与对抗的办法
三、更多的检测手段与指纹浏览器选购方案
四、命令行形式浏览器多开解决方案
五、浏览器插件形式改变指纹
六、node.js库Puppeteer改变浏览器指纹信息
七、python改变浏览器指纹信息
八、java、go、c#、php、rust更改浏览器指纹信息
九、编写自己的指纹浏览器以及指纹信息来源
十、闲话聊一聊指纹浏览器的用途
指纹浏览器原理
这两年指纹浏览器实在是太火了,感觉什么都用的到的样子,从亚马逊测评,到FB投放,从到EMU各种黑灰产。
指纹浏览器是通过创建不同的浏览器硬件信息,当网站对访客的浏览器进行检测的时候,返回不同的设备信息,普遍意义上这个设备信息是唯一的,类似于人们指纹的感觉,所以就被叫做浏览器指纹。指纹浏览器的通过更改这个设备信息应对网站对于浏览器的指纹检测,实际上叫反浏览器指纹检测的浏览器更贴切,只是这样叫太难听就简略了。
今天我们不提各种指纹浏览器产品的效果如何,而要说的是,大部分情况场景都是不需要指纹浏览器的,因为这种东西是平台检测才有可能有用,而平台不检测你根本用不到这种东西。
很多人需要的仅仅是浏览器多开工具,也就是各个浏览器实例相互之间无关联,配合每个实例设置不同IP,达到环境隔离的目的。对于多开的解决办法我会在后面几期教程里讲解,请大家按上面目录进行查看。
FB投放或EMU对于指纹浏览器的需求
我们做FB投放黑五的本质上就是大量铺号,基本上能跑出去就赚钱,能搞定小国家的企业号能减少铺号数量,因为这种号你不用cloak都不影响你直接上黑五offer,如果没有这种资源,那么大部分人的选择就还是个人号,而个人号又分了好多种,不过都逃脱不了,每天需要上大量账号这个事实。
因为一个人要登录很多个号,那么问题就来了。登录一个账号就用自己的浏览器就行了,登录多个号还用一个浏览器这可不行,因为cookie是一直存在的,你后登录的账号会跟前面登录的冲突,而来回清理浏览器数据再登录新的又太麻烦。
个人免费解决方案
- 可以通过一台电脑安装多个浏览器来解决,这是最简单也是最方便的方式。每个浏览器再分配指定的IP,这样基本上就保证了不同账号的登录需求了。
- 也有人提到用vps远程或VMware等虚拟机的,他们不是不可用,而是虚拟机有个致命问题,它的硬件信息不是物理机的硬件信息,而是虚拟化出来的硬件信息,里面包含了特定的虚拟机的标签,这就是为什么有些朋友做emu的,即使用了虚拟机依然被抓到的原因。有朋友问,虚拟机用起来方便,分配IP也简单,那难道这种就没有解决办法了嘛?答案是有的,只需要给浏览器安装伪造指定硬件信息的插件就可以解决这个问题了。
可以看到浏览器的WebGL信息里,明确有Vmware字样,而个人正常的浏览器,这里应该显示的是你的显卡的信息,如下图:
- 加载反指纹浏览器插件,通过让浏览器预加载js代码来给网站返回伪造后的指纹信息。
- 通过编程语言调用浏览器,并在启动浏览器时同时加载反指纹js代码,达到上面同样的效果。
这时候有人会说,你上面说的这些我都试了根本不行啊,我依然封号,只有指纹浏览器感觉上封号概率更低。但实际上这种情况大概率是因为号自身不行。除非号是你自己养的,否则只要是其他渠道的号就面临异地登陆的问题。有些可能号自身是带cookies来的,但是你的浏览器session和LocalStorage等信息变了,不是原来号的环境了。登录账号后台可以看到异地登录记录,并且你的IP也一定是变了的。
那么这种情况下指纹浏览器不是主要因素,主要因素是账号自身,账号特别耐用的,你随便哪里的IP都可以登录,但如果账号不耐用,那么你只要登录就一定触发验证或者封号。你越贴合原账号所在地的IP,那么理论上账号越安全。
网站获取访客信息的办法
User Agent也简称UA。它是一个特殊字符串头,是一种向访问网站提供你所使用的浏览器类型及版本、操作系统及版本、浏览器内核、等信息的标识。
以前人们在做emu的时候就是改变Useragent和IP地址,其他根本不用考虑,因为事实就是大部分检测都只检测这两个东西,一个网站在浏览器能获得到的权限非常有限,后端例如:php python go等语言只能获取到这两样东西进行统计,而你看到的追踪统计工具里的访客os,device,country code等信息都是通过对UA和IP地址进行解析而得到的,而gps等信息是需要用户主动点击允许按钮才可以获取的到,大部分用户是不会主动去点击这个东西,所以你看到的访客的所在地都是通过对IP地址在maxmind之类的IP数据库中进行对比而得到的。
批量登录FB跟上面的emu又有不同,虽然本质上很类似,但是因为面对的事物不同,导致所需要的东西也不同。emu面对的是联盟的统计,emu让联盟看到的是不同的访客,不同的设备,不同的IP地址,所以他们需要更改不同的UA,不同的IP。
而FB呢,为了登录账号投放广告,我们自己是访客,而且一个号就是一个访客,而不是一个号需要给他刷很多个访问记录,那么上面提到的问题就简单了,同一个UA不同的IP地址登录不同的账号都是可以的。
因为两者的场景不同,对于UA不会有很强烈的需求,你如果非要做到不同也是可以的,但实际上根本没必要,世界上主流的浏览器就是那么几种,简单的办法就是保证是最新的就好,有人网上找的随机UA是chrome57版本,或者是ie6这种上古UA,你觉得这种情况下无论是联盟还是FB会认为你是个正常访客吗?
想要进一步获得访客的详细信息就不能只靠后端语言了,这时候目前唯一可以被浏览器自身运行的语言就该出场了,那就是JavaScript。它随着自身不断的发展,以及乔帮主狠推的HTML5,导致它在浏览器上的能力越来越强,权限越来越大,下一篇文章我会详细讲解JavaScript在浏览器指纹信息获取上的应用,以及对抗的办法。
本文由三分醉博客原创,转载请注明:https://www.sanfenzui.com/talk-about-the-past-and-present-of-fingerprint-browser.html
文章同步更新在知乎:三分醉 - 知乎