Apache全局屏蔽恶意 User Agent(防蜘蛛)
不知道我们各位朋友们的网站是否有出现流量不大,但是我们的主机商会告诉我们某个时间段的时候网站被大量的攻击导致内存占据超标,要求我们处理。同样的,如果我们自己在使用vps主机环境建站的时候,有些时候因为模拟蜘蛛的抓取、采集,以及有些空user agent爬虫的抓取,会导致服务器压力较大,内存一直处于较高的占用状态。
往往这样大部分的原因是因为有些被恶意或者故意的user agent蜘蛛抓取导致的服务器内存占用超过导致网站的访问不能正常。
这里我们将讲解如何通过修改 httpd.conf 配置文件 实现全局屏蔽 恶意 user agent 。
1.查看apache日志后,记住要屏蔽的User-Agent
加多两行就可以了
DocumentRoot /var/wwwroot/xxxxx
<Directory "/www/wwwroot/xxxxx">
SetEnvIfNoCase User-Agent "ZmEu" getout
Order allow,deny
Allow from all
deny from env=getout
</Directory>
ZmEu是捣乱者的user agent含有的字符,按具体情况修改,可以添加多行 SetEnvIfNoCase User-Agent "Made by ZmEu" getout
2.使用.htaccess屏蔽User-Agent
在.htaccess里添加
RewriteCond %{HTTP_USER_AGENT} ".*ZmEu.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*Made by ZmEu.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*whitehat.*" [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0$"
RewriteRule ^(.*)$ https://www.vpsvt.com/
如果你觉得有用,添加rewrite规则前,不妨先分析一下自己的网站日志,根据自己的需要定制.推荐使用Firefox+User Agent Switcher测试效果.
该方法同样适用用于 宝塔面板,cpanel 等使用 apache Web服务器端 的面板. 只要找到 httpd.conf 配置文件即可