爬虫攻防之浏览器指纹

导语

指纹技术在我们的日常生活中已经屡见不鲜,比如我们的手指指纹,以及手掌掌纹,更或者当前人脸识别,都可以算作指纹的一种。但是呢,这些都是属于生物学上的指纹,而我们今天所要探讨的主题是浏览器指纹?而浏览器的指纹又是什么呢?文章将通过浏览器指纹简介->浏览器指纹对抗一一进行讲解。

打个广告:压力所迫,开始对外接单。如有需要小程序,web,数据分析,数据抓取等相关需求的可联系本人(wx:wpj____ 欢迎各位老板骚扰),另外所有接单人员均来自于 华为、海康、阿里等一些厂商员工,服务包您满意;另外本人欲打算创建公司,届时也可以开发票,走合同。

什么是浏览器指纹

什么是指纹?我自己在这里瞎写一个我所理解的含义:就是能够唯一定位一个事物或者事件的独有标志符,就是指纹。比如,我们每个人的长相都不同,那么他就是我们的指纹;再比如,我们每个人都有不同的身份证号,这也是我们个人的指纹。所以,指纹可以是先天拥有,也可以是后天定义。

什么是浏览器指纹?知道了什么是指纹,顾名思义,浏览器指纹就是能够唯一定位识别到某一具体浏览器的摘要值。但是浏览器不同于我们日常生活中所见的各种物理设备,如手机,路由器,网卡等一些设备,因为他们在出厂时就被定义了一个独有的指纹值,比如手机拥有IMEI编号,网卡拥有唯一的MAC地址。那么浏览器指纹到底是一个什么数据呢?类似于我们看一个人外貌特征,比如这个人的鼻梁是高挺,还是鹰钩,眼球是灰色还是黑色,皮肤是黄色还是棕色等,这些都是我们判断识别一个人的基础信息所在。而浏览器的指纹也就包含了一些他所拥有的基本特征,如版本号、平台、webgl、css特征、bluetooth等等,下图是一些常见的特征:

而基于这些特征,便可以计算浏览器的指纹。

指纹的妙用

一般情况下,网站记录浏览器的指纹信息是没用的,对网站有用的是浏览器所对应的用户信息。一般情况下,我们记录用户的浏览喜好等一些信息,都是需要用户进行登录获取到cookie值,才可以对用户进行跟踪,推荐,从而进行转化。但是,有许多网站其实是不需要用户进行登录的,比如新闻门户网站,电商网站,房产网站等等,而这些网站如果想要获得良好的用户转化,浏览器指纹技术就是一项不可少的技能。

指纹的应用场景十分广泛:

比如新闻门户网站可以通过指纹进行新闻喜好的推荐,电商网站可以记录你最喜好的最偏爱的衣服风格款式,房产网站可以记录你想要购买房屋的地点等。另外基于此信息,还可以基于指纹对用户进行画像分析,精准定位,推送,转化。

比如在风控识别方面,网站基于前台指纹,即使你更换ip,更换请求头,平台依旧可以识别定位是否是同一个人,从而进行针对性风控,此技术可以大大降低恶意抓取(当然了,这也大大增加了爬虫的难度),水军舆论引导等风险。

浏览器指纹可以做的事情还有很多,大家可以自由畅想。

浏览器特征

既然要计算浏览器指纹,那么浏览器的一些基础特征指标肯定是要有的,这里我们以某网站为例,看看他都获取了哪些特征指纹,如下图所示:

其中,很明显的特征:如他记录的当前浏览器屏幕的宽、高;当前浏览器的色域,内存大小,语言,插件,时区,平台,等等一系列基础信息,而通过这些信息,便可以简单的记录一个浏览器的基础属性,但是通过这些值,还远远不够唯一定位一个浏览器。那么还有哪些特征呢?我们接着往下看:

这里,我们着重说cssFeatures这个值;这个值其实是计算的当前浏览器的css指纹,那么他是怎么进行计算呢?其实,有一个大家可能不太关注的一个点,不同平台上面,对于默认的属性值的颜色其实是不同的,比如我当前是macos monterey系统,我们这里简单测试一个值:


<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    <style>
        .ng {
            background-color: activeborder !important;
        }
    style>
head>
<body>
<div class="ng">
div>
<script>
    console.log(getComputedStyle(document.querySelector(".ng")).backgroundColor);
script>
body>
html>

这段代码,你可以用你的电脑打开,查看输出的值是多少,我这里显示的值为rgb(118, 118, 118),而拥有这些特征的参数,有很多;厂商就是根据这些值,来进行我们的浏览器特征值的计算,从而达到css指纹计算,最终来给我们定义一个指纹。而浏览器可以给定指纹的特征有很多,这里只是举例了css指纹,另外还有字体指纹,canvas指纹,webgl指纹,等等;

这里我放一个网站,大家可以测测自己的浏览器指纹:https://web.uutool.cn/

我的指纹是这样的:

指纹对抗

而为了满足我们爬虫的目的,指纹对抗不可或缺。基于此,我们需要对各项指纹的值进行更改,从而达到更多的指纹设备,来进行爬虫。那么如来更改浏览器的基础值呢?这里,我抛砖隐喻一下(不同的网站需要不同对待),比如厂商要根据我们的平台来进行检测,比如,我的平台是mac,那么我的navigator.platform的属性值则是MacIntel,而我们知道,如果是windows的话,这个值则是Win32,所以,我更改这两个值,则相当于多了两个随机的特征。

针对于不同的厂商,检测的手段可能有所不同,但他们肯定是基于浏览器给定的api来进行测算的,所以,具体的案例就需要我们具体的分析,来满足我们抓取的目的。

预告

后面本人可能专门花时间研究浏览器底层代码,实现安全浏览器,敬请期待。。。

阅读全文
下载说明:
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=14632,转载请注明出处。
0

评论0

显示验证码
没有账号?注册  忘记密码?