利用免费WAF雷池社区版解决「爬虫占用网络带宽问题」

1. 背景

关联词:限频、访问控制、爬虫、反爬虫、WAF、长亭、雷池

对于一些自动的 bot 或者恶意的爬虫,其访问网站的频率大、时间长,如果打开云服务器的管理后台,往往会发现网络的大部分流量都集中在一个或几个的 IP 上。对于这些情况其实都可以以一个很简单的手段实现,那就是在服务器中对访问IP限频

但是对于访问IP的限频功能通常与业务逻辑关系不大,开发者通常不太想要去自己维护一个IP访问频次表,同时在分布式、并发等条件下手动维护所有访问者的信息有着很大的开发成本。

长亭的雷池 WAF 正好解决了这一系列问题, 雷池提供了限频、端口转发、手动IP黑白名单等功能,以及其核心功能——防御 Web 攻击。

2. 安装雷池

官网提供了在线安装、离线安装、牧云助手安装三种方式,本文不再赘述,详情可以查看:
https://waf-ce.chaitin.cn/docs/guide/install

3. 登录雷池

雷池采用了 OTP 手段进行登录鉴权, 简单来说就是通过腾讯身份验证器等软件,向登录页面输入手机软件上生成的动态密码(约15s 会更新一次密码)即可。

3.1 软件扫码绑定

在这里插入图片描述

扫码后即绑定,可以在首页看到动态密码
在这里插入图片描述

3. 2 输入口令密码

在这里插入图片描述

3.3 进入雷池管理界面

在这里插入图片描述

4. 配置站点和限频功能

4.1 雷池站点配置

雷池的站点配置功能比较齐全,包括自动上传 TLS 证书、私钥,指定多个转发端口等,不需要开发者自己配置 nginx 转发
在这里插入图片描述

4.2 配置限频功能

具体的封禁策略可以进行自定义,推荐为 10 s,100 次 ,封禁 10分钟
在这里插入图片描述

PS:如果是自己测试,或者发现误报的,可以手动解除封禁

5. 测试及其他

5.1 测试

后台准备了一个简单的服务器,提供一个hello的接口,带有一个a的参数
简单编写测试的爬虫代码:

def send_request(url,request_method="GET",header=None,data=None):  
    try:  
        if header is None:  
            header=Config.get_global_config().header  
        response = requests.request(request_method, url, headers=header)  
        return response  
    except Exception as err:  
        print(err)  
        pass  
    return None

if __name__ == '__main__':  
    # config=Config.get_global_config()  
    # print(config.header)    # send_request(header="asad")  
    for i in range(0,100):  
        str = random.choice('abcdefghijklmnopqrstuvwxyz')  
        resp = send_request("http://a.com/hello?a="+str)  
        print(resp.content)

打印值

b'{"a":"u"}'
b'{"a":"m"}'
b'{"a":"y"}'
b'{"a":"o"}'
b'<!DOCTYPE html>\n\n<html lang="zh">\n  <head>\n .... #后续是一串很长的 HTML 文本

此时重新访问页面可以发现已经被拦截了
在这里插入图片描述

5.1 有些爬虫比较狡猾,伪造X-Forwarded-For请求头怎么办

雷池可以直接在 ‘通用配置’->‘源 IP 获取方式’->选中‘从网络连接中获取’
表示从 TCP 连接中获取 Source IP
在这里插入图片描述

如果你要问‘如果爬虫十分狡猾,伪造了 TCP 的 Source IP 字段怎么办?’
好吧,由于伪造了TCP头信息,由于 HTTP 基于 TCP 的握手会直接失败, 爬虫本身已经失去了爬取信息的能力,访问请求也会在经过 nginx 时被丢弃。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WAF(Web应用程序防火墙)被绕过是指黑客通过某种手法绕过云WAF的防护机制,成功攻击目标网站。为了解决这个问题,我们可以采取以下措施: 1. 定期更新和升级云WAF:及时检查云WAF的更新和升级,确保其与最新的攻击技术和漏洞攻击方法保持同步。这样可以增强云WAF的防护能力,减少被绕过的概率。 2. 强化访问控制策略:加强对访问源的筛选和过滤,设置有效的白名单和黑名单,限制访问源IP地址和用户,防止非法入侵。同时,注意对已知攻击者和恶意IP禁。 3. 加强网络安全监控和日志分析:实时监控网络流量和攻击行为,及时发现并针对新的攻击手法做出应对。对日志进行分析和审计,发现异常行为和漏洞,加强防御机制。 4. 引入人工智能技术:结合人工智能技术,利用机器学习和深度学习算法分析行为和模式,提升云WAF的自动学习和智能感知能力。通过引入AI技术,可以对攻击进行预测和自动化响应,防止云WAF被绕过。 5. 多层次防护策略:除了云WAF外,还应该采取其他防护措施,如IPS(入侵防御系统)、IDS(入侵检测系统)、DDoS防护等,形成多层次的安全防护体系。这样可以提供更全面的保护,减少云WAF被绕过的可能性。 总之,解决WAF被绕过的问题需要不断跟进最新的攻击技术和漏洞,并采取多种措施加强防护。通过定期更新和升级云WAF、强化访问控制策略、加强网络安全监控、引入人工智能技术以及实施多层次防护策略,可以提高云WAF的安全性,减少被绕过的风险。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值