Nginx通过User-Agent禁止采集机器人并返回炸弹

防止采集,可以直接禁了垃圾bot, 发现caddy有个http.nobots,nobots保护你的网站免受网络爬虫和机器人。
可以给采集的恶意程序返回特定的数据。

比如实际1G压缩成1M大小的gzip文件(炸弹),对于服务器的话就是发送了1M的文件,恶意程序请求后会自动解包为1G的数据,可以对恶意程序造成很大的压力。

可以直接给特定UA返回一个炸弹。

用php返回炸弹

将下面的代码写到网站目录下一个新的php文件,比如bomb.php

<?php
header('Content-Encoding: gzip');
echo file_get_contents('1G.gzip');

如何制造炸弹

插件中未提供炸弹,因此您必须创建一个炸弹。在Linux中,这确实很容易,您可以使用以下命令。

dd if=/dev/zero bs=1M count=1024 | gzip > 1G.gzip
dd if=/dev/zero bs=1M count=10240 | gzip > 10G.gzip
dd if=/dev/zero bs=1M count=1048576 | gzip > 1T.gzip

炸弹(1G.gzip)和php(bomb.php)文件放在同一个目录下

Nginx添加配置

location / {
  #UA BOMB
  if ($http_user_agent ~* "(zhadan|bomb)") {
    rewrite ^/.*  /bomb.php last;
  }
}

修改(zhadan|bomb)为恶意UA列表
修改/bomb.php为你的炸弹php路径

如果本身已经有伪静态配置了,也就是有location / {的配置了,就添加进去就行了。
只需要下面这些

  #UA BOMB
  if ($http_user_agent ~* "(zhadan|bomb)") {
    rewrite ^/.*  /bomb.php last;
  }
© 版权声明
THE END
如果喜欢,可以【点赞】【分享】【收藏】
点赞8赞赏 分享
评论 共1条
头像
人生坎坎,山山而峦,不过尔尔;心路漫漫,水水而川,如此悠悠
提交
头像

昵称

取消
昵称表情代码图片
    • 头像陶小桃Blog0
    • 头像晚秋夕巷0