电脑装配网

反爬虫”技术及手段探讨

 人阅读 | 作者xiaofeng | 时间:2023-01-04 16:22

 

在一大堆技术术语里,最为被普通人所熟知的大概就是“爬虫”了。其实爬虫这个名字就已经特别好地表现出了这项技术的作用——像密密麻麻的虫子一样分布在网络上,爬行至每一个角落获取数据;也一定程度上表达了人们对这项技术的情感倾向——虫子或许无害,但总是不受欢迎的。

 

爬虫在极大的方便了企业进行数据搜集的同时,也造成了大量IP访问网站侵占带宽资源、以及用户隐私和知识产权等很多危害,因此并不被互联网企业欢迎。在爬虫泛滥的今天,怎样“反爬虫”已成了需要深入思考的问题。

 

一、历史

现代意义上的搜索引擎的祖先,是1990年由蒙特利尔大学学生Alan Emtage发明的Archie。虽然当时World Wide Web还未出现,但网络中文件传输还是相当频繁的,而且由于大量的文件散布在各个分散的FTP主机中,查询起来非常不便,因此AlanArchie工作原理与现在的搜索引擎已经很接近,它依靠脚本程序自动搜索网上的文件,然后对有关信息进行索引,供使用者以一定的表达式查询。由于Archie深受用户欢迎,受其启发,美国内华达System Computing Services大学于1993年开发了另一个与之非常相似的搜索工具,不过此时的搜索工具除了索引文件外,已能检索网页。

 

当时,“机器人”一词在编程者中十分流行。电脑“机器人”(Computer Robot)是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。由于专门用于检索信息的“机器人”程序象蜘蛛一样在网络间爬来爬去,因此,搜索引擎的“机器人”程序就被称为“蜘蛛”程序。

 

世界上第一个用于监测互联网发展规模的“机器人”程序是Matthew Gray开发的World wide Web Wanderer。刚开始它只用来统计互联网上的服务器数量,后来则发展为能够检索网站域名。

 

在爬虫技术快速发展的同时,“反爬虫”作为相生的一面也得到了一些发展。

 

在90年代开始有搜索引擎网站利用爬虫技术抓取网站时,一些搜索引擎从业者和网站站长通过邮件讨论定下了一项“君子协议”—— robots.txt。即网站有权规定网站中哪些内容可以被爬虫抓取,哪些内容不可以被爬虫抓取。这样既可以保护隐私和敏感信息,又可以被搜索引擎收录、增加流量。

 

然而,协议的前提是利益的平衡,爬虫技术所能收获的利益远远超出协议所规定的的范畴,于是在一些不遵守规定的人率先破坏下,协议也渐渐失效了。

在协议失效之后,被爬虫的网站也只能拿起技术的武器。比如从访问数量上发现爬虫,当我们在某一网站浏览过快时,系统往往会要求输入验证码,就是因为这种快速浏览的行为很接近爬虫。或者是不定期改变HTML标签,使之无法与Web排序匹配来限制爬虫。

 

另外,也有互联网企业利用法律的方式“反爬”。

 

历史上第一桩关于爬虫的官司诞生在2000年,eBay将一家聚合价格信息的比价网站BE告上了法庭,eBay声称自己已经将哪些信息不能抓取写进了爬虫协议中,但BE违反了这一协议。但BE认为eBay上的内容属于用户集体贡献而不归用户所有,爬虫协议不能用作法律参考。

最后经过业内反复讨论和法庭上的几轮唇枪舌战,最终以eBay胜诉告终,也开了用爬虫协议作为主要参考的先河。

 

二、现状

 

根据网宿科技发布的《2018上半年中国互联网安全报告》显示,今年上半年,Web应用攻击总数环比增长了97.82%,恶意“爬虫”攻击数量环比增长了55.79%。另有数据显示,交通出行类恶意“爬虫”流量占比居首位,其次是电商、社交、点评、运营商、公共行政等,网络爬虫的非法使用给互联网竞争环境带来诸多负面影响。

 

——今年7月,生活分享平台“小红书”官微发布声明指责大众点评大量抄袭小红书用户的内容,随后,大众点评道歉;今年2月,视频弹幕网站哔哩哔哩大量用户的视频、昵称、头像及用户评论,出现在某新成立的视频网站上;而航空公司的官网上的机票、订座等信息,长期被代理公司将机票信息爬取、占座,然后在其他网站上加价销售。

 

——日前,微信公号“小声比比”发布题为《估值175亿的旅游独角兽,是一座僵尸和水军构成的鬼城?》的文章,援用乎睿数据团队所供数据称,作为马蜂窝核心资产之一的2100万“真实点评”中,有1800万条是通过机器人从携程等竞争对手那里抄袭过来的。其中,超过7000个抄袭账号,合计抄袭572万条餐饮点评,1221万条酒店点评,占总点评数的85%。

 

——2017年,武汉元光科技有限公司为提高其开发的智能公交“车来了”App在中国市场的用户量及信息查询的准确度,未经深圳市谷米科技有限公司许可,指使公司员工利用网络“爬虫”软件获取谷米公司服务器中的实时数据,谋取该软件在实时公交信息查询软件中的竞争优势。

 

——2016年,百度公司曾大量使用大众点评网的点评信息的行为,通过百度地图和百度知道与大众点评网争夺网络用户,导致大众点评网的流量减少,同时,又推介自己的团购等业务,攫取了大众点评网的部分交易机会。

 

由此可见,恶意爬虫对于互联网企业来说,非常容易损害到企业的核心资产,即用户和内容数据。

 

三、反爬技术探讨

 

由于担心恶意爬虫将会导致的预期损失,互联网企业们对“反爬”自然也是不遗余力。

 

一方面在技术上可以对恶意爬虫进行涉县:

1) 设置robots.txt文件

限制爬虫最简单的方法是设置robots.txt文件。robots.txt文件是搜索引擎爬虫访问网站的时候要查看的第一个文件,它告诉爬虫程序在服务器上什么文件是可以被查看的,如设置Disallow: /,则表示所有的路径均不能查看。遗憾的是并不是所有的搜索引擎爬虫会遵守这个规则,因此仅仅设置robots文件是不够的。

2) User Agent识别与限制

要对不理会robots.txt文件的爬虫访问进行限制,首先要把爬虫流量与普通用户的访问流量进行区分,即对其进行识别。一般的爬虫程序都可以通过其HTTP请求中的User Agent字段进行识别,该字段使服务器能够识别客户使用的操作系统及版本、CPU类型、浏览器及版本、浏览器渲染引擎、浏览器语言、浏览器插件等。爬虫的User Agent字段一般与浏览器的有所不同,如Google搜索引擎爬虫User Agent字段中会有类似Googlebot的字符串,如User-Agent: Googlebot/2.1 ( http://www.google.com/bot.html),百度搜索引擎爬虫则会有类似Baiduspider的字符串。不少Web服务器软件如 Apache,可以设置通过User Agent字段进行访问过滤,可以比较有效的限制大部分爬虫的访问。

3) 通过访问行为特征识别与限制

对于在HTTP请求的User Agent字段刻意伪装成浏览器的爬虫,可以通过其访问行为特征进行识别。爬虫程序的访问一般是有规律性的频率比较高,区别于真实用户浏览时的随意性与低 频率。对这类爬虫的限制原理与DDoS攻击的防御原理很相似,都基于统计数据。对于这类爬虫的限制只能通过应用识别设备、IPS等能够做深度识别的网络设 备来实现。用网络设备限制网络爬虫,不仅比较全面,而且非常适合在多服务器情况下进行统一的管理,避免多服务器单独管理有可能造成的疏漏。

 

另外,也可以通过法律手段对直接责任企业进行制约,像上文所述的武汉光元爬虫案及百度爬虫案,经起诉后法院都依据案件行为构成商业不正当竞争进行了判决,赔偿并停止侵害。

 

四、总结

网络爬虫及其对应的技术为网站带来了可观访问量的同时,也带来了直接与间接的安全威胁,越来越多的网站开始关注对网络爬虫的限制问题。随着互联网的 高速发展,基于网络爬虫与搜索引擎技术的互联网应用将会越来越多,网站管理员及安全人员,有必要了解爬虫的原理及限制方法,准备好应对各种各样的网络爬虫。

 


文章标签:

本文链接:『转载请注明出处』