前言
你在网上的匿名言论,在爬虫面前可能毫无隐私可言。在一些社交平台中,看似可以肆意吐槽发言的隐秘角落,如果有别有用心的人使用爬虫进行大数据分析,每个用户的行为都形同于裸奔。事实上,在网络空间,对于爬虫的使用和安全防攻程度早已超出了普通人的想象。那么今天我就结合一些现实中发生的一些真实防攻案例和大家讨论——写爬虫真的会坐牢吗?
一、爬虫初识:什么是爬虫?
简单来讲,爬虫就是一个探测机器,它的基本原理就是模拟人的行为去各个网站溜达,点点按钮、查查数据,或者把看到的信息抓回来。
如果用专业一点的说法,一个最简单的爬虫就是通过程序用技术模拟人的操作,从中获取到服务器里众多数据,先解析出自己需要的信息,再由程序决定接下来做什么。
有可能是拿到网页中的某个标签链接,继续跳转到下一个页面。也有可能把获取到的信息直接存储到本地或数据库中。但这些都还是传统意义上的爬虫。或许扒一扒匿名社区,搜罗所谓极端发言时能提高效率。
二、爬虫的涉及方面?
在现如今的爬虫,高手和大公司之间的博弈早已不限于 web 端,还会涉及到客户端逆向、动态调试分析等,真实的攻防场景和爬虫带来的巨大利益要远远超过人们的想象。爬虫最基础的就是抓取,我们习惯于把一次 http 请求拿回数据并分析自己需要的数据的过程,称为一次'抓取'。
比如你手动在百度里面搜索'张三',这即是你 http 向百度服务器发出的一次请求。爬虫的'抓取'是模拟人的行为,不过它与你手动发出的请求不同,它是由机器或者说程序批量发起。
比如你每天使用的百度,就是利用了这样的爬虫技术,它每天发出无数个爬虫到各个网站把它们的信息抓取回来,然后化好妆排着小队等着你来检索。
前些年 12306 刚刚上线的时候,市面上也出现了大量的抢票软件。你可能不知道,这些抢票软件也是利用了爬虫技术,相当于帮你撒出去无数个分身都在不断的刷新 12306 网站的火车余票,一旦发现有票,就马上拍下来,然后喊你'快来付款'。
众所周知,技术本身并没有善恶之分,关键在于掌握在什么人手里。
三、恶意爬虫
很多政务网站,新闻聚合类媒体等背后都有爬虫的应用,可以说没有爬虫就没有'互联网'。知识区有个神仙般的大 up,他会用爬虫将小伙伴们的弹幕评论等爬取下来,然后进行分析、比对,有针对性地进行优化行文,大大提高工作效率。但是像抢票这样的爬虫,对着 12306 恨不得撸几万次,这种就定为'恶意爬虫'。
四、反爬虫
但是,有爬虫的地方就有反爬虫,这是一个攻防的过程。攻击可以定义为,在未授权的前提下,通过技术手段模拟真人操作,获取目标系统,对真实用户展示的信息。防御可以定义为对攻击进行干预、拦截、溯源等。在网络安全领域没有绝对的固若金汤,一切攻防手段都是'魔高一尺,道高一丈',正对爬虫买的攻防博弈也是如此。
从 web 端的 IP 封禁,到验证码识别发起请求者是人还是机器人,再到祭出内容'投毒',爬虫与反爬虫之间的博弈永远没有尽头。
倘若把我们防护网和网站 APP 比作是一座城,最原始的爬虫机械化地发起一个开门请求,如果没有防守策略,就会导致城门大开,面对无人把守的城门,爬虫可能得寸进尺,开始疯狂进出。为了守住城门,保证服务器的稳定,守门人必须开启 IP 封禁,如果爬虫过于频繁的来访,反扒这便会记住爬虫所现在的 IP 地址,对这样的恶意爬虫直接进行 IP 封禁。不过这样的防御手段,通常只对 web 端的爬虫起作用,用户登录账号时弹出的验证码是反爬虫的又一大利器。
它是由计算机天才'路易斯。冯。安'和他的小伙伴提出的,全名叫'全自动区分计算机和人类的公开图灵测试'。
不论是拼图还是找数字和文字,都是系统向请求的发起第方提出问题,能正确回答的就是人类,反之则被判定为机器。当然,验证码并不是专为反爬虫而生,起初是为了解决机器批量下发垃圾邮件的问题。我们前面也说了,爬虫行为也是机器批量行为,所以当发现爬虫时弹出验证码就能防止爬虫行为。
随着网络攻防不断演化,又出现了'打码平台'来识别验证码,甚至用 AI 来打码来突破防御。
这里就需要系统有更强的洞察能力,通过蛛丝马迹分辨出到底是人还是机器。验证码经过几代演进,在 12306 系统应用中达到了巅峰,其题目难度和通过率让人望而却步。
比如在屏幕上的这张图片中找出喜羊羊,当然这个验证码并不是为了故意刁难老老实实买票的人,而是被爬虫逼得没办法。
五、'蜜罐'技术
对待爬虫不一定要一刀切拦截,在网络安全领域,有一种技术叫做'蜜罐',英文名是'honeypot'。
你可以想象这样一种场景,把蜂蜜装在罐里作为诱饵诱引昆虫陷进去,诱引昆虫入陷进,放在爬虫抓取防御的技术上面,可以叫做'内容投毒'。当被爬方发现疑似非授权的爬虫爬取数据时,并不是直接打开,而是给出错误信息。
比如电商为了爬取同行平台商品价格,同行为了反爬,故意显示给爬虫错误的价格,而消费者正常搜索看到的才是正确的价格。
这里讲一个真实的案例:
张三准备偷偷爬取李四的页面内容,李四早有防备,有针对性的在搜索结果中加入了一段文案'搜索结果来自李四',由于张三在抓取过程中没有遇到验证码之类的阻拦,于是自李四认为可以万事大吉的爬取使用,后面的事大家应该都略有耳闻,这样的文案被大大方方的展示在张三公司的前端页面上,相当于昭告天下,张三家号称自研的搜索引擎,其实内容都是从李四那里爬来的。这波操作可以说攻击性不大但侮辱性极强。


