0

最近、DDOS攻撃に再び問題が発生しています。基本的に、特定のパスへのアクセスを禁止したいと思います。

ログファイルの例:

109.242.25.254 --- [23 / Mar / 2013:16:09:35 +0100] "GET /?op = my_account HTTP / 1.1" 200 4218 "-" "Mozilla / 5.0(X11; U; Linux i686; en-米国;rv:1.9.0.10)Gecko / 2009042523 Ubuntu / 9.04(jaunty)Firefox / 3.0.10

したがって、空白のリファラーまたは「-」リファラーからパス「?op = my_account」へのアクセスを禁止し、403ページに送信します。

私はhtaccessでこのように始めました:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www.)?mysite.com [NC]
RewriteRule ^\?op=my_account$ - [F] 

したがって、基本的に、自分のページを除くこのページへの他のすべてのリファラーを禁止します。しかし、どういうわけかこれは機能しません。私は2行目に何かが欠けていると思いますか?

4

1 に答える 1

0

\?op=my_accountで使用することはできませんRewriteRule。クエリ文字列は使用できないため、URLパスのみを使用できます。代わりに使用RewriteCondする必要があります%{QUERY_STRING}

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mysite\.com [NC]
RewriteCond %{QUERY_STRING} ^op=my_account$
RewriteRule ^$ - [F]
于 2013-03-23T18:01:39.830 に答える