0

スパム ボット/クローラーが私の Web サイトに来て、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タブ文字) は、2 番目の RewriteCond で最も重要な操作節です (その他はセキュリティを強化するために挿入されます)。

構文エラーはどこにありますか? これらのリクエストをブロックするにはどうすればよいですか?

4

2 に答える 2

1

わかりました、次を使用して終了すると、403エラーでボットをトラックで停止しているようです:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Mozilla/5\.0.*Windows\ NT\ 5\.1;\ rv:5\.0.*Gecko/20100101\ Firefox/5\.0 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^.*(%0A|%0D|%27|%3C|%3E|%00|%09|\t|\x09).* [NC]
RewriteRule ^.* - [F,L]
于 2012-05-10T15:31:50.750 に答える
0

問題は、\ x09と入力すると、それは特殊文字ではなく、文字\、x、0、および9であるということです。タブが必要な場合は、代わりに\tを使用してみてください。これはタブの正規表現バージョンです。したがって、RewriteCondは次のようになります。

RewriteCond %{HTTP_USER_AGENT} ^\tMozilla [NC,OR]
于 2012-05-10T07:35:46.827 に答える