8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
垃圾蜘蛛AhrefsBot封禁方法
aiyun 2020-6-20

最近网站打开访问很慢,最开始以为是cc攻击。

分析了下日志才发现,是SemrushBot这个垃圾机器人在疯狂的爬站,不到一天时间爬取了6000多次,我X。

果断研究如何封禁SemrushBot。

SEMrush是什么

SEMrush是一个国外的搜索引擎蜘蛛。不过对你的网站来说除了浪费资源外,没有任何好处。

使用robots.txt封禁

通常来说,只要是遵循robots规则的蜘蛛或者爬虫,都可以使用robots.txt来禁止它爬取。

SemrushBot官方也说遵守这个规则,不过实际上是如果你不是一开始就添加了这个规则,

你都不知道它蜘蛛什么时候才会重新爬取你的robots.txt文件来修改抓取规则。

添加规则如下:

User-agent: SemrushBot
Disallow: /

使用nginx来封禁

如果使用的nginx的话,也可以单独添加下面这串代码到你虚拟机配置文件来实现屏蔽SemrushBot

    #禁止SemrushBot垃圾蜘蛛访问
    if ($http_user_agent ~* SemrushBot) {
        return 444;
    }
    #禁止多个垃圾蜘蛛访问
    if ($http_user_agent ~* (SemrushBot|AhrefsBot) ) {
        return 444;
    }

上面规则(匹配波浪号后面的字符,直接显示444;~*:组合一起使用,意思是不区分大小写)返回444状态码而不是403,因为444状态码在nginx中有特殊含义。

nginx的444状态是直接由服务器中断连接,不会向客户端再返回任何消息,比返回403更加暴力。若有不足还请补充和指正。

最后于 2020-6-20 被aiyun编辑 ,原因:
最新回复 (0)
    • Ai云
      2
        立即登录 立即注册
返回