ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何使用阿里云WAF进行反爬虫 (1)

2021-04-06 22:00:49  阅读:180  来源: 互联网

标签:自定义 WAF 误伤 爬虫 防护 阿里 反爬


如何使用阿里云WAF进行反爬虫

0x01 为什么要反爬虫

这是一个老生常谈的问题,爬虫使得互联网更加丰富多彩,但也有各种各样的问题:

防资源过度消耗

大量的爬虫会给网站带来极大的压力,由于并不是真实访问,对于一般网站来说,有百害而无一利。

防止侵权

网络上大部分伪原创、侵权内容都是靠爬虫采集来的,除了搜索引擎的爬虫外,其他的爬虫难免都会有不可描述的目的,频繁的爬取网站的内容,会导致网站内容被复制,从而使得我们辛辛苦苦运营的网站被轻易的克隆。

0x02 反爬应对方法

  1. 通过headers进行反爬虫 headers反爬是最常见最基础的反爬手段,通过判断User-agent的内容来识别爬虫和访客,但User-agent是非常容易被修改的,所以这种方式也是最好绕过的。
  2. 基于用户行为的反爬 如何一个访客短时间内访问了大量页面,访问速度明显超过了一般人的阅读速度,那么基本可以判定为爬虫,或者是一些非忠诚访客,可以直接进行封禁,缺点是容易错封,并且可以通过更换ip、浏览器等方式绕过判断。

    0x03 反爬实战

以上是小编我自己想到的两种反爬的手段,比较入门成本也比较低,但是缺点也很明显,喜欢折腾的可以深入完善一下,如果比较懒得,可以试一下阿里云的web应用防火墙(WAF),既能保护网站安全,还能通过自定义策略来实现反爬。 web应用防火墙官方介绍: https://www.aliyun.com/product/waf?source=5176.11533457&userCode=7fhdgnci

网站接入Web应用防火墙后,您可以为其开启自定义防护策略功能。自定义防护策略允许您自定义基于精确匹配条件的访问控制规则和访问频率限制规则。自定义防护策略支持随业务场景定制,可用于盗链防护、网站管理后台保护等场景。您可以根据实际需求配置自定义规则。

通过WAF的acl访问规则进行限制

通过设置WAF自定义防护策略,您可以灵活地结合User-Agent和URL等关键字段来过滤恶意爬虫请求。

  1. 在控制台的自定义防护策略页面配置以下ACL访问控制规则,只放行百度爬虫,而过滤其他的爬虫请求。 5c0259ade7c03966c03ca70031ba203c.png
  2. 在控制台的自定义防护策略页面配置以下ACL访问控制规则,禁止任何爬虫访问/userinfo目录下的内容。 cec3b0694e4ffe7944d288e4172a23a7.png

基于用户行为进行反爬设置

如果发现恶意爬虫请求具有高频的特征,可以使用自定义防护策略的频率设置,针对特定的路径配置基于IP的访问频率的检测和阻断规则。 例如:您可以在控制台的自定义防护策略页面配置以下规则,当一个IP在30秒内访问当前域名下任意路径的次数超过1000次,则封禁该IP的请求10个小时。 409593fd9fca2c9abf2becfedcee7a3b.png

防止误伤的策略

前面也说过,这两种反爬思路都会有一定的误伤可能,针对此种情况,如果误伤,可能就会导致一名忠实访客的流失,对于运营来说,尽可能的减少误伤也是必须要考虑的一个方面,阿里云的WAF也提供了一种防止误伤判断的方式:

可以在频率设置中使用除IP和Session外的自定义统计对象字段,设置更细粒度、更多维度的限速功能。例如,由于针对IP的封禁会影响NAT出口,您可以使用cookie或者业务中自带的用户级别参数作为统计对象。下图配置针对业务中标记用户的cookie(假设cookie格式为uid=12345)进行统计,并使用滑块作为处置动作,避免误拦截。

说直白点就是用过cookie或者session来判断用户行为,如果疑似爬虫,便使用滑块验证码进行验证,如果是真实访客,则放行,如果过不了验证码,那么再进行拦截,从而减少误伤。 37c4f3d8c4650abf97ab722e880d7425.png 对于初次上云或者有反爬需求的企业来说,使用阿里云的WAF是一个不错的安全,既能增强网站的安全性,也极大的提高了隐私和版权。

标签:自定义,WAF,误伤,爬虫,防护,阿里,反爬
来源: https://blog.csdn.net/aamialei/article/details/115471829

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有