当今互联网爬虫的种类繁多,您可以通过WAF提供的各种功能来拦截部分恶意爬虫。

值得注意的是,为了绕过网站管理员的防爬策略,专业的爬虫往往会不断变换爬取手段。因此,依靠固定的规则来实现一劳永逸的完美防护是不太可能的。此外,爬虫风险管理往往与业务自身的特性有很强的关联性,需要专业的安全团队进行对抗才能取得较好的效果。

如果您对防爬效果有较高的要求,或者缺乏专业的安全团队来配置相应的安全策略,欢迎您使用阿里云提供的更全面、更专业的爬虫风险管理产品进行防御。

恶意爬虫的危害和特征

正常爬虫通常会带有包含xxspider的user-agent标识,并且爬取的请求量不大,爬取的URL和时间段都比较分散。合法的爬虫IP通过执行反向nslookup或tracert,一般都可以看到合法的来源地址。例如,对百度的爬虫IP执行反向nslookup,即可查询到其来源地址信息。
查看源站信息

而恶意爬虫则可能会在某个时间段大量请求某个域名的特定地址或接口,这种情况很可能是伪装成爬虫的CC攻击,或是经第三方伪装后针对性爬取敏感信息的请求。当恶意爬虫请求量大到一定程度,往往造成服务器的CPU飙升,导致网站无法访问等业务中断问题。

WAF针对恶意爬虫进行风险预警,提示用户昨日的爬虫请求情况。您可以结合具体的业务情况,有针对性地配置下列规则中的一种或几种,拦截对应的爬虫请求。

配置精准访问控制拦截特定爬虫

通过配置精准访问控制规则,您可以灵活地结合User-Agent和URL等关键字段来过滤恶意爬虫请求。
  • 例如,配置以下精准访问控制规则,即可实现只放行百度爬虫,而过滤其他的爬虫请求。
    说明 匹配内容中的关键字对于大小写不敏感。

    新增规则,放行百度蜘蛛
  • 配置以下精准访问控制规则,可以禁止任何爬虫访问/userinfo目录下的所有内容。
    新增规则,禁止爬取
说明 需要注意的是,通过限制User-Agent字段的方式在面对恶意攻击者精心构造的爬虫攻击时很容易被绕过。例如,恶意攻击者可以通过在恶意爬虫请求的User-Agent字段中带有baidu字符,则可伪装成百度爬虫而不被该精准访问控制规则所拦截。甚至,恶意攻击者可以通过在User-Agent字段中去除spider字符,隐藏爬虫身份,则该精准访问控制规则将无法拦截。

正如在本文开头部分提到的,依靠固定的规则来实现一劳永逸的完美防护是不太可能的。面对更具有针对性、更高级的恶意爬虫风险,爬虫风险管理产品通过爬虫情报能力实现更强大的防爬能力。基于阿里云对全网威胁情报实时计算得到的恶意爬虫IP情报库、动态更新的各大公有云、IDC机房IP库等情报信息,爬虫风险管理产品可以帮助您直接放行合法爬虫请求并对来自威胁情报库的恶意请求进行防护处置。

配置自定义CC规则拦截恶意请求

如果您发现恶意爬虫请求具备高频特征,您还可以使用自定义CC规则,针对特定的路径配置基于IP的访问频率的检测和阻断规则。
说明 如果您遭受的恶意爬虫攻击难以通过设置基于IP的访问频次限制规则进行防御,建议您选择爬虫风险管理产品提供的更细粒度的频次限制功能。爬虫风险管理的频次限制功能,支持针对URL路径配置基于自定义字段作为统计对象的访问频率限制,并且支持在访问频率中叠加特定响应码的数量或比例来进一步限制该请求对象的访问请求。

配置区域封禁拦截恶意请求

如果您发现恶意爬虫请求大量来自于特定区域,且正常的业务访问都没有来自该区域的请求,则可以通过启用区域封禁直接拦截该特定区域的所有访问请求。