配置网站反爬虫防护规则防御爬虫攻击

您所在的位置:网站首页 爬虫防检测 配置网站反爬虫防护规则防御爬虫攻击

配置网站反爬虫防护规则防御爬虫攻击

2024-07-15 13:06| 来源: 网络整理| 查看: 265

您可以通过配置网站反爬虫防护规则,防护搜索引擎、扫描器、脚本工具、其它爬虫等爬虫,以及自定义JS脚本反爬虫防护规则。

如果您已开通企业项目,您需要在“企业项目”下拉列表中选择您所在的企业项目并确保已开通操作权限,才能为该企业项目下域名配置防护策略。

前提条件

已添加防护网站。 云模式-CNAME接入的接入方式参见将网站接入WAF防护(云模式-CNAME接入)章节。 云模式-ELB接入的接入方式参见 将网站接入WAF防护(云模式-ELB接入)章节。 独享模式的接入方式参见将网站接入WAF防护(独享模式)章节。 如果使用独享WAF,确保独享引擎已升级到最新版本,具体的操作请参见升级独享引擎实例。 约束条件 JS脚本反爬虫依赖浏览器的Cookie机制、JavaScript解析能力,如果客户端浏览器不支持Cookie,此功能无法使用,开启后会造成永远无法访问源站。 如果您的业务接入了CDN服务,请谨慎使用JS脚本反爬虫。

由于CDN缓存机制的影响,JS脚本反爬虫特性将无法达到预期效果,并且有可能造成页面访问异常。

入门版和标准版不支持该功能。 防护网站部署模式为“云模式-ELB接入”时,不支持JS脚本反爬虫功能。 开启JS脚本反爬虫后,如果不能查看拦截记录,请参见开启JS脚本反爬虫后,为什么有些请求被WAF拦截但查不到拦截记录?。 网站反爬虫“js挑战”的防护动作为“仅记录”,“js验证”的防护动作为人机验证(即js验证失败后,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。 WAF的JS脚本反爬虫功能只支持get请求,不支持post请求。 JS脚本反爬虫检测机制

JS脚本检测流程如图1所示,其中,①和②称为“js挑战”,③称为“js验证”。

图1 JS脚本检测流程说明

开启JS脚本反爬虫后,当客户端发送请求时,WAF会返回一段JavaScript代码到客户端。

如果客户端是正常浏览器访问,就可以触发这段JavaScript代码再发送一次请求到WAF,即WAF完成js验证,并将该请求转发给源站。 如果客户端是爬虫访问,就无法触发这段JavaScript代码再发送一次请求到WAF,即WAF无法完成js验证。 如果客户端爬虫伪造了WAF的认证请求,发送到WAF时,WAF将拦截该请求,js验证失败。

通过统计“js挑战”和“js验证”,就可以汇总出JS脚本反爬虫防御的请求次数。例如,图2中JS脚本反爬虫共记录了18次事件,其中,“js挑战”(WAF返回JS代码)为16次,“js验证”(WAF完成JS验证)为2次,“其他”(即爬虫伪造WAF认证请求)为0次。

图2 JS脚本反爬虫防护数据

网站反爬虫“js挑战”的防护动作为“仅记录”,“js验证”的防护动作为人机验证(即js验证失败后,弹出验证码提示,输入正确的验证码,请求将不受访问限制)。

操作步骤 登录管理控制台。 单击管理控制台左上角的,选择区域或项目。 单击页面左上方的,选择“安全与合规 > Web应用防火墙 WAF”。 在左侧导航树中,选择“防护策略”,进入“防护策略”页面。 单击目标策略名称,进入目标策略的防护配置页面。 选择“网站反爬虫”配置框,用户可根据自己的需要开启或关闭网站反爬虫策略。

:开启状态。 :关闭状态。

选择“特征反爬虫”页签,根据您的业务场景,开启合适的防护功能,如图3所示,检测项说明如表1所示。

特征反爬虫规则提供了两种防护动作: 拦截

发现攻击行为后立即阻断并记录。

开启拦截后,可能会有以下影响 :

拦截搜索引擎请求,可能影响网站的搜索引擎优化。 拦截脚本工具,可能会影响部分APP访问(部分APP的User-Agent未做修改,会匹配脚本工具类爬虫规则)。 仅记录

默认防护动作,发现攻击行为后只记录不阻断攻击。

默认开启“扫描器”防护检测,用户可根据业务需要,配置防护动作并开启其他需要防护的检测类型。 图3 特征反爬虫防护 表1 特征反爬虫检测项说明

检测项

说明

功能说明

搜索引擎

搜索引擎执行页面内容爬取任务,如Googlebot、Baiduspider。

开启后,WAF将检测并阻断搜索引擎爬虫。

说明:

如果不开启“搜索引擎”,WAF针对谷歌和百度爬虫不会拦截,如果您希望拦截百度爬虫的POST请求,可参照配置示例-搜索引擎进行配置。

扫描器

执行漏洞扫描、病毒扫描等Web扫描任务,如OpenVAS、Nmap。

开启后,WAF将检测并阻断扫描器爬虫。

脚本工具

用于执行自动化任务、程序脚本等,如httpclient、okhttp、python程序等。

开启后,WAF将检测并阻断执行自动化任务、程序脚本等。

说明:

如果您的应用程序中使用了httpclient、okhttp、python程序等脚本工具,建议您关闭“脚本工具”,否则,WAF会将使用了httpclient、okhttp、python程序等脚本工具当成恶意爬虫,拦截该应用程序。

其他爬虫

各类用途的爬虫程序,如站点监控、访问代理、网页分析等。

说明:

“访问代理”是指当网站接入WAF后,为避免爬虫被WAF拦截,爬虫者使用大量IP代理实现爬虫的一种技术手段。

开启后,WAF将检测并阻断各类用途的爬虫程序。

选择“JS脚本反爬虫”页签,用户可根据业务需求更改JS脚本反爬虫的“状态”。

默认关闭JS脚本反爬虫,单击,在弹出的“警告”提示框中,单击“确定”,开启JS脚本反爬虫

防护动作:拦截、仅记录、人机验证。

人机验证:JavaScript挑战失败,弹出验证码提示,输入正确的验证码,请求将不受访问限制

JS脚本反爬虫依赖浏览器的Cookie机制、JavaScript解析能力,如果客户端浏览器不支持Cookie,此功能无法使用,开启后会造成永远无法访问源站。 如果您的业务接入了CDN服务,请谨慎使用JS脚本反爬虫。

由于CDN缓存机制的影响,JS脚本反爬虫特性将无法达到预期效果,并且有可能造成页面访问异常。

根据业务配置JS脚本反爬虫规则,相关参数说明如表2所示。

JS脚本反爬虫规则提供了“防护所有请求”和“防护指定请求”两种防护动作。

除了指定请求规则以外,防护其他所有请求 “防护模式”选择“防护所有请求”,单击“添加排除请求规则”,配置排除请求规则后,单击“确认”。 图4 添加排除防护请求 只防护指定请求时

“防护模式”选择“防护指定请求”,单击“添加请求规则”,配置请求规则后,单击“确认”。

图5 添加请求规则 表2 JS脚本反爬虫参数说明

参数

参数说明

示例

规则名称

自定义规则名称。

waf

规则描述

可选参数,设置该规则的备注信息。

-

生效时间

立即生效。

立即生效

条件列表

条件设置参数说明如下:

字段:在下拉列表中选择需要防护的字段,当前仅支持“路径”、“User Agent”。 子字段 逻辑:在“逻辑”下拉列表中选择需要的逻辑关系。 说明:

当“逻辑”关系选择“包含任意一个”、“不包含任意一个”、“等于任意一个”、“不等于任意一个”、“前缀为任意一个”、“前缀不为任意一个”、“后缀为任意一个”或者“后缀不为任意一个”时,需要选择引用表。

内容:输入或者选择条件匹配的内容。 区分大小写:“字段”选择“路径”时,可配置该参数。开启后,系统在检测配置的路径时,将区分大小写。

“路径”包含“/admin/”

优先级

设置该条件规则检测的顺序值。如果您设置了多条规则,则多条规则间有先后匹配顺序,即访问请求将根据您设定的优先级依次进行匹配,优先级较小的规则优先匹配。

5

相关操作 规则添加成功后,默认的“规则状态”为“已开启”,若您暂时不想使该规则生效,可在目标规则所在行的“操作”列,单击“关闭”。 若需要修改添加的JS脚本反爬虫规则,可单击待修改的路径规则所在行的“修改”,修改该规则。 若需要删除添加的JS脚本反爬虫规则时,可单击待删除的路径规则所在行的“删除”,删除该规则。 配置示例-仅记录脚本工具爬虫

假如防护域名“www.example.com”已接入WAF,您可以参照以下操作步骤验证反爬虫防护效果。

执行JS脚本工具,爬取网页内容。 在“特征反爬虫”页签,开启“脚本工具”,“防护动作”设置为“仅记录”(WAF检测为攻击行为后,只记录不阻断)。

图6 开启“脚本工具”

开启网站反爬虫。

图7 网站反爬虫配置框

在左侧导航树中,单击“防护事件”,进入“防护事件”页面,您可以查看该防护事件。

图8 查看防护事件-脚本爬虫

配置示例-搜索引擎

放行百度或者谷歌的搜索引擎,同时拦截百度的POST请求。

参照6将“搜索引擎”设置为放行,即将“搜索引擎”的“状态”设置为。 参照配置精准访问防护规则定制化防护策略配置如图9的规则。

图9 拦截POST请求



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3