我遇到了垃圾邮件机器人/爬虫程序进入我的网站的问题,其请求在 apache 日志中显示如下:
"GET / HTTP/1.1" 200 7128 "-" "\x09Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0"
这些请求的奇怪区别在于,出于某种原因,用户代理前面有一个制表符 ( \x09
),因此我尝试为这些请求创建一个 .htaccess mod_rewrite 过滤器。
到目前为止,我未能成功创建一个适合拒绝这些请求的 RewriteCond。我尝试了以下方法:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^\x09Mozilla [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(%0A|%0D|%27|%3C|%3E|%00|%09).* [NC]
RewriteRule ^.* - [F,L]
(%09
制表符)是第二个 RewriteCond 中最重要的操作子句(为了增加安全性而加入的其他子句)。
我的语法错误在哪里?如何阻止这些请求?