当前位置: 首页 > news >正文

网站遭受扫描攻击,大量爬虫应对策略

网站的日志里突然有很多访问路径不存在的,有些ip地址也是国外的,而且访问是在深夜且次数非常频繁紧密。判定就是不怀好意的扫描网站寻找漏洞。也有些是爬虫,且是国外的爬虫,有的也是不知道的爬虫爬取网站。网站的真实流量不多,资源都被这些流氓给浪费了。

初始策略

起初发现某个ip,apache、防火墙封禁ip。

这个策略不好用,因为换个ip继续扫描。也不能实时盯着网站日志。

进一步策略

访问不存在的路径的ip,就记录下来,存储到redis,记录次数。
在入口文件检测当前访问的ip在redis里有没有记录,如果次数超过50次,直接返回404。

这个策略确实挡住了很多扫描,但是还是不能减少扫描。花钱购买防护软件不舍得。只能被动的防守。

终极策略

终于找到了反制策略,感谢大神。在此处也给自己记录一下。

反之策略zip炸弹。简单说,zip 炸弹是一种超小的压缩文件,解压之后却会变成一个巨大的文件,能让处理它的系统崩溃。

linux代码

dd if=/dev/zero bs=1G count=10 | gzip -c > /www/10GB.gz

这个命令的作用如下:

  • dd:用于拷贝或转换数据;
  • if:指定输入文件,这里是 /dev/zero,一个会不断生成零字节数据的特殊设备;
  • bs=1G:设置块大小为 1GB,意味着每次处理 1GB 数据;
  • count=10:处理 10 个这样的块,总共生成 10GB 的零数据;
  • 然后我们将这些数据通过管道传给 gzip,生成一个压缩文件 10GB.gz,压缩后大小大约是 10MB。
//省略从redis获取当前ip的次数,假设$num就是次数
if ($num>50) {    header("Content-Encoding: deflate, gzip");    $GB10="/www/10GB.gz";header("Content-Length: " . filesize($GB10)); readfile($GB10);    exit;
}

流氓IP访问的时候,就直接返回这个10GB的压缩软件,让它解压缩解到崩溃。

相关文章:

  • C语言while循环的用法(非常详细,附带实例)
  • 绘制时间对应的数据曲线
  • C/C++ 程序执行的主要过程
  • [万字]qqbot开发记录,部署真寻bot+自编插件
  • JavaScript进阶(九)
  • mysql8常用sql语句
  • VLLM推理大模型显存不够后,导致程序引擎崩溃的调优方案尝试
  • Mac M系列 安装 jadx-gui
  • java架构设计
  • git cherry-pick和git stash命令详解
  • 反转链表II
  • leetcode0295. 数据流的中位数-hard
  • 关于 javax.validation.constraints的详细说明
  • HuggingFace的SafeSensor格式模型能转成Ollama格式的吗?
  • 26、测试咒语:魔法校验—— Jest+Testing Lib
  • SimpleAdmin云服务器发布
  • 浅聊一下数据库的索引优化
  • 19.Excel数据透视表:第2部分数据透视计算
  • 生产级编排AI工作流套件:Flyte全面使用指南 — Core concepts
  • 需求管理缺乏持续改进机制,如何建立
  • 大英博物馆展歌川广重:他是梵高最钟爱的浮世绘名家
  • 体坛联播|C罗儿子完成国家队首秀,德约结束与穆雷合作
  • 兰州大学教授安成邦加盟复旦大学中国历史地理研究所
  • 普京提议无条件重启俄乌谈判,外交部:我们支持一切致力于和平的努力
  • 复旦相辉堂上演原创历史人物剧《王淑贞》,胡歌参演
  • 上海工匠学院首届学历班56人毕业,新一届拟招生200人