天泰 OpenWAF 开源防爬虫模块

简介:

最近在网上看到一个有趣的问题:整个互联网的流量中,真人的占比有多少?根据 Aberdeen Group在近期发布的以北美几百家公司数据为样本的爬虫调查报告显示,最近三年网站流量中的真人访问平均仅为总流量的50%,剩余的流量由28.11%的善意爬虫和21.89%的恶意爬虫构成,可见爬虫数量是多么惊人。

什么是网络爬虫?

网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

如何定义恶意爬虫?

正常的爬虫,会先访问/robots.txt文件,看哪些路径允许爬,哪些路径禁爬

恶意的爬虫,会无视禁爬路径,依然对那些路径进行访问,甚至都不去访问/robots.txt文件

恶意爬虫的危害

可能很多人认为,恶意爬虫只会威胁到少数以文本为核心价值的网站,其实这些能改变自己请求路径和请求方式的伪装者可能潜伏在任何一个网站的每一个角落,文本、图片、价格、评论、接口、架构等方方面面均有可能成为爬虫的囊中物。

核心文件被爬不说,商品信息,价格或者注册账号被扫描等都将会给运营者带来大量的麻烦和损失。

为什么恶意爬虫屡禁不止?

爬与反爬的斗争从未间断。过去的初级爬虫能很明显从异常的Headers信息甄别,但爬虫制造者从一次次爬与反爬中总结出可能被封的原因,通过不断的测试和改善爬虫程序,更新换代后的高持续性恶意爬虫通常具有以下特点中的某几个:

模仿真人行为

加载 JavaScript 和外部资源

模拟cookie和 useragent

浏览器自动化操作

变化的IP地址池

这些,无疑都给防爬虫带来了巨大的麻烦。

天泰OpenWAF的防爬虫功能

针对恶意爬虫,OpenWAF针对以下行为进行分析,有效拦截恶意爬虫

访问禁爬路径(暗链陷阱)

访问过/robots.txt文件,且访问除了GET和HEAD还有其他方法,如POST请求

携带恶意爬虫cookie进行访问

OpenWAF行为分析引擎中,包含恶意爬虫检测模块。针对不访问/robots.txt文件的爬虫,OpenWAF设置暗链陷阱,凡是访问此暗链的均为恶意爬虫。对于没有/robots.txt文件的站点也不用担心,OpenWAF会自动生成一个/robots.txt文件,供他人访问。

有些爬虫工具,不带有js模块,OpenWAF返回的恶意爬虫cookie,下次请求时不会携带此cookie。针对这类工具,OpenWAF会在内存中将此工具进行标记(默认5分钟),即使不带有此cookie,再次访问时,依然会被识别出来。

其实防扫描也是一个道理,若扫描工具未访问/robots.txt,且访问了暗链,则也会被视为恶意爬虫,因此OpenWAF的防恶意爬虫模块也会拦截大部分扫描工具

我们始终坚信“愈分享,愈安全”,希望有更多人能够尝试OpenWAF,并加入防护WEB安全的队伍,并给我们提出您的宝贵意见。

本文来自开源中国社区 [http://www.oschina.net]

目录
相关文章
|
数据采集 Web App开发 JSON
Python爬虫:关于scrapy模块的请求头
Python爬虫:关于scrapy模块的请求头
583 0
Python爬虫:关于scrapy模块的请求头
|
3天前
|
数据采集 人工智能 自然语言处理
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
FireCrawl 是一款开源的 AI 网络爬虫工具,专为处理动态网页内容、自动爬取网站及子页面而设计,支持多种数据提取和输出格式。
47 18
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
|
7月前
|
数据采集 JSON 数据格式
三:《智慧的网络爬虫》— 网络请求模块(下)
本篇文章讲解了网络请求模块中Requests模块的get请求和post请求,并用十几张图示详细介绍了爬虫工具库与开发者工具的操作与使用;同时本篇文章也列举了多个代码示例如:对搜狗网页的爬取;爬取360翻译(中英文互译程序)并以此介绍了重放请求(通过重放请求来确定反爬参数)以及Cookie与Session实战案例 -- 爬取12306查票
80 9
三:《智慧的网络爬虫》—  网络请求模块(下)
|
7月前
|
数据采集 数据安全/隐私保护 Python
二:《智慧的网络爬虫》— 网络请求模块(上)
网络请求模块就是帮助浏览器(客户端)向服务器发送请求的​。在Python3之前的版本(Python2版本)中所使用的网络请求模块是urllib模块​;在Python3现在的版本中通过urllib模块进行升级 有了现在所使用的requests模块,也就是requests模块是基于urllib模块进行开发的。本篇文章讲解的是urllib模块。
71 2
二:《智慧的网络爬虫》—  网络请求模块(上)
|
7月前
|
数据采集 Python
半小时速通Python爬虫!GitHub开源的Python爬虫入门教程
今天给小伙伴们带来了一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者。 小伙伴们只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫。
|
7月前
|
数据采集 Python
半小时速通Python爬虫!GitHub开源的Python爬虫入门教程
今天给小伙伴们带来了一篇详细介绍 Python 爬虫入门的教程,从实战出发,适合初学者。 小伙伴们只需在阅读过程紧跟文章思路,理清相应的实现代码,30 分钟即可学会编写简单的 Python 爬虫。
|
7月前
|
数据采集 搜索推荐 JavaScript
GitHub星标3500的Python爬虫实战入门教程,限时开源!
爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等。 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的数据支撑。搜索引擎通过网络爬虫技术,将互联网中丰富的网页信息保存到本地,形成镜像备份。我们熟悉的谷歌、百度本质上也可理解为一种爬虫。 如果形象地理解,爬虫就如同一只机器蜘蛛,它的基本操作就是模拟人的行为去各个网站抓取数据或返回数据。
|
数据采集 IDE 关系型数据库
Python编程:PyThink数据库交互模块提高爬虫编写速度
Python编程:PyThink数据库交互模块提高爬虫编写速度
123 0
Python编程:PyThink数据库交互模块提高爬虫编写速度
|
数据采集 网络安全 Python
python爬虫——request模块讲解
python爬虫——request模块讲解
383 0
python爬虫——request模块讲解
|
数据采集 XML 数据格式
python爬虫——Beautiful Soup库(数据解析)模块讲解
python爬虫——Beautiful Soup库(数据解析)模块讲解
231 0
python爬虫——Beautiful Soup库(数据解析)模块讲解