一、恶意 User Agent 的定义及常见类型
1、定义:User Agent是用户在访问网站时发送给服务器的一个字符串,用于表明用户的身份信息,恶意User Agent通常指的是那些用于进行恶意行为的爬虫或自动化脚本。
2、常见类型:

| 恶意 User Agent | 描述 |
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52) |
常用于垃圾留言和恶意注册。 |
Mozilla/5.0 QunarBot/1.0 |
怀疑与“去哪儿”相关的无视robots.txt的蜘蛛。 |
Mozilla/4.0 (compatible; MSIE 5.00; Windows 98) |
抓取网站目录下的mp3文件。 |
Mozilla/4.0 |
无尽的扫描行为,非常恶心。 |
二、使用 .htaccess 屏蔽恶意 User Agent 的方法
1、分析网站日志:在实施屏蔽之前,建议先分析网站的访问日志,识别出恶意User Agent的类型和特征,可以使用日志分析工具如AWStats或者直接查看Apache的访问日志文件。
2、编写 .htaccess 规则:根据识别出的恶意User Agent,编写相应的重写规则,针对常见的几种恶意User Agent,可以编写如下的.htaccess规则:
RewriteEngine On
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/ [R=301,L]
3、测试规则:在正式应用规则之前,建议使用Firefox的User Agent Switcher或Chrome的相关扩展程序来模拟不同的User Agent,测试编写的规则是否有效。
4、部署并监控:将编写好的.htaccess文件部署到网站服务器上,并持续监控网站的访问情况,确保规则生效且没有误封正常用户的访问。
相关问题与解答
1、如何确定哪些 User Agent 是恶意的?
答:可以通过分析网站日志,观察哪些User Agent频繁访问敏感页面或执行异常请求,也可以使用在线的User Agent分析工具来帮助判断。
2、屏蔽 User Agent 对网站性能有影响吗?
答:合理的屏蔽规则不会对网站性能产生显著影响,但如果规则过于复杂或数量过多,可能会增加服务器的处理负担,建议定期评估和优化规则。
3、是否可以完全防止恶意爬虫?
答:虽然通过.htaccess屏蔽恶意User Agent可以在一定程度上防止恶意爬虫,但无法完全杜绝,建议结合其他安全措施,如设置robots.txt文件、使用验证码等,来增强网站的安全性。