Hello! 欢迎来到小浪云!


云服务器Apache利用USER_AGENT屏蔽恶意蜘蛛


avatar
小浪云 2024-07-15 191

 

最近发现日志里有很多没见过的蜘蛛UA,基本上都是国外的一些搜索引擎,或者很本不是搜索引擎,有的抓取频率很高,刚开始设置了下robots.txt,因为他们首先都抓取了robots.txt,应该是遵守规则的,没想到人家只是走个过场,并没有把robot.txt放在眼里。

 

apache可以用.htaccess文件来通过useragent来屏蔽一些访问,搜了一下,大概可以这么做:

 

 

 

 

.htaccess

SetEnvifNoCase User-Agent ^.*Scrapy.* bad_bot

SetEnvifNoCase User-Agent ^.*SemrushBot.* bad_bot

SetEnvifNoCase User-Agent ^.*ExtLinksBot.* bad_bot

SetEnvifNoCase User-Agent ^.*YandexBot.* bad_bot

SetEnvifNoCase User-Agent ^.*MauiBot.* bad_bot

SetEnvifNoCase User-Agent ^.*Python.* bad_bot

SetEnvifNoCase User-Agent ^.*NetcraftSurveyAgent.* bad_bot

Deny from env=bad_bot

这样当这些匹配的useragent就会被返回403禁止访问。

 

可是第二天发现有几个useragent疯狂的访问robot.txt,反正都不遵守规则,那么执着的访问robots.txt干什么。。。。。

 

于是我换了一种方法,打算用302(301也一样啦,对这些恶意蜘蛛没那么讲究)把他们转走。

 

.htaccess

云服务器Apache利用USER_AGENT屏蔽恶意蜘蛛

这样,就都被302到www.xlyVPS.com了,现在再看那些未知的蜘蛛基本不会在主站乱爬了。

 

另:.htaccess的正则:”^”代表字符串的开始,”.*”代表任意字符。

 

NC代表不区分大小写,OR代表或者,L的意思是一旦有符合条件的规则就不再执行下面的规则,所以这些语句要放在wordpress等程序默认伪静态规则的前面。

相关阅读