极验验证—User Agent

极验验证 2017-02-20 15:17 SAAS 来源:思达派 查看原文

新春佳节刚刚过去,在这段大家都灰常悠闲的日子里,有人却忙的不可开交,比如说撸活动奖品的羊毛党。

极小验无意中看到一篇帖子,主要内容就是教广大投机倒把分子如何把Google浏览器伪装成微信浏览器来撸活动,对于这些羊毛党们的猖狂,极小验表示很生气。

我们先来看看这帖子是怎么说的。

作者选择了一个微信活动作为目标,通过PC端浏览器打开该活动链接。

显示无法打开,因为微信活动适配的是手机端的。

紧接着,打开谷歌浏览器,按F12。

点击红色框中的,像手机一样的图标,就可以查看不同类型手机的界面预览了。

然后将后面的UA替换掉就可以大功告成。

看起来真的是十分简单的一个方法,而这个方法中唯一一点比较有技术含量的,就是伪装UA了。

那么这个UA到底是啥玩意儿呢?

User Agent 我们简称UA,指用户代理,是代表用户行为的软件所提供的一个标识自己身份的标识符,包含了用户正在使用的设备以及软件的一些信息(例如操作系统及版本、CPU 类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等)。

用户代理需要通过服务器的确认之后,才能够获取服务器资源。网站可以通过用户代理字符串来确定应该向用户提供哪个版本的服务。用户代理最直接的应用就是浏览器啦。

我们来详细了解一下用户代理字符串。

该用户代理应用是Mozilla的5版,或一类和它兼容的软件。

操作系统是OS X版本10.2.2(是在Mac上运行)。

客户端是Chrome版本51.0.2704.84。

客户端基于Safari版本537.36。

负责该设备上的显示内容引擎applewebkit版本537.36。

UA的诞生,其实是为了帮助我们的网站更好的为网络用户们提供服务。根据UA,服务器可以检查浏览器或设备的功能,并加载不同的CSS的结果;通过辨别用户代理,服务器提供手机端和PC端不同的网页页面布局;基于用户代理语言的偏好,自动发送正确的翻译文档;根据设备类型或者一些其他因素,为特殊人群提供个性化服务等等。

但是我们也看到,UA只是一个简单的字符串,伪装起来十分方便。

从积极的一面来说,很多浏览器也会伪装自己为其他浏览器来提高兼容性,或者更好的进行开发。在安卓的设备上,浏览器会伪装成Safari来避免加载内容的时候出现问题,海豚浏览器就有一个很有用的桌面伪装模式。

但是恶意爬虫也可以伪装成为一个普通的浏览器,爬取网站的资源。

首先获取若干浏览器的UA:

设置如下代码:

就能够实现爬虫伪装浏览器了。

当然,我们也有相应的机制来解决上述提到的篡改UA的问题,比如有的浏览器和服务器交换UA会进行相应的加密,这样可以防止UA被窥探和伪装。不同的浏览器性能其实是不一样的,恶意程序伪装成的浏览器性能却是一样的,所以我们常常会利用UA和浏览器其他特征之间的联系来识别恶意程序。

极验也是一直致力于利用深度学习来进行数据防伪,UA很简单,单一UA的确不能够给我们带来有用的安全防护。但是作为安全一部分,UA拓展了我们检测的维度。虽然UA可以伪造,但是各项特征之间的关系却不能够伪造,UA中包含了JS解析引擎、操作系统及硬件平台信息。当前页面上JS的执行性能与JS解析引擎、操作系统、硬件平台和当前机器负载有关。

一真实UA如下:

恶意程序可以在iOS系统下,用Safari浏览器伪装成上述UA,但是其JS的执行性能分析结果必然会有很大的不同,毕竟是不同的操作系统和浏览器。

所以UA仍然有着他不可替代的作用。


为您推荐: