Apache 使用 .htaccess 屏蔽恶意 User Agent

一、登记在册的恶意 User Agent

1、”Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727)”

下面是网站日志中的两条记录,这个 User Agent 会重复访问注册页面,并获取验证码,这是垃圾留言和恶意注册的开始。

116.242.22.10 199.27.128.204 – – [30/Oct/2011:04:02:15 +0800] “GET /checkcode.php HTTP/1.1” 302 286 “http://www.***.com/register.php” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727)”

116.242.22.10 199.27.128.204 – – [30/Oct/2011:04:02:19 +0800] “POST /register.php HTTP/1.1” 302 286 “http://www.***.com/register.php” “Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 2.0.50727)”

2、”Mozilla/5.0 QunarBot/1.0″

这是一个无视 robots.txt 的蜘蛛,怀疑与“去哪儿”有关。

3、”Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)”

61.147.91.201 173.245.48.60 – – [30/Oct/2011:06:00:28 +0800] “GET /mp3/%A5%D6%A5%EB%A9%60%A5%D0%A9%60%A5%C9.mp3 HTTP/1.1” 302 286 “-” “Mozilla/4.0 (compatible; MSIE 5.00; Windows 98)”

看到没?Windows 98!总是抓取网站目录下的mp3文件,都是原来上传过mp3文件到网站的错。

4、”Mozilla/4.0″

58.255.120.95 199.27.128.216 – – [30/Oct/2011:06:01:26 +0800] “GET /ikmedata/cache/fuck.php HTTP/1.1” 404 1479 “-” “Mozilla/4.0”
58.255.120.95 199.27.128.216 – – [30/Oct/2011:06:01:27 +0800] “GET /data/cache/fuck.php HTTP/1.1” 404 1479 “-” “Mozilla/4.0”
58.255.120.95 199.27.128.216 – – [30/Oct/2011:06:01:27 +0800] “GET /data/cache/fuck.php HTTP/1.1” 404 1479 “-” “Mozilla/4.0”

又一个坑爹的,无尽无穷的扫描,非常恶心。

二、屏蔽恶意 User Agent

使用 .htaccess 屏蔽 User Agent 的方法很多,这里使用 rewrite 规则把这些 User Agent 转移走,以达到屏蔽的效果。

RewriteCond %{HTTP_USER_AGENT} “.*EmbeddedWB.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*QunarBot.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “.*Windows 98.*” [OR]
RewriteCond %{HTTP_USER_AGENT} “^Mozilla/4.0$”
RewriteRule ^(.*)$ http://cao.ni.ma/

使用 .htaccess 需要了解一些正则表达式语法,以正确匹配字符串。

如果你觉得有用,屏蔽恶意 User Agent 前,不妨先分析一下自己的网站日志,根据自己的需要定制。可以使用 Firefox+User Agent Switcher 测试效果,Chrome 也有类似的切换 User Agent 的扩展程序。