78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

Nginx通过判断User-Agent禁止爬虫采集并返回炸弹

Nginx通过判断User-Agent禁止爬虫采集并返回炸弹

caddy 有个http.nobots

nobots保护你的网站免受网络爬虫和机器人,可以给采集的恶意程序返回特定的数据。

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

类如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;

  }

当然你也可以返回410

直接在nginx的location模块中添加if判断header,返回410错误

if ($http_user_agent ~* (SemrushBot|Semrush) ) {

    return 410;

}

编译好的1G.gzip

链接: https://pan.baidu.com/s/1Ck1OwkStAuIgk16db9dw4Q 提取码: bmxc

编译好的10G.gzip

链接: https://pan.baidu.com/s/1qe3qE1dffui03XeSjz4qWQ 提取码: h4bk 

本文链接:http://78moban.cn/post/9603.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部