1

WordPress サイトに対する悪質な DDOS 攻撃の被害者になりました。

ありがたいことに、それらは URL の末尾に文字列 ?ptrxcz が追加された GET 要求であるため、簡単に削除できます。

これを念頭に置いて、.htacess を使用してこれを満たすリクエストに 403 パーミッション エラー ページを与えるルールを設定しました。問題は、これらがインストールされたパーマリンクでも機能しないように見えることです。

これが私の完全な .htaccess ファイルです。

RewriteEngine On
RewriteCond %{QUERY_STRING} .*ptrxcz.*
RewriteRule (.*) - [F]

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

最初の部分は、ptrxcz を使用してユーザーを 403 ページにリダイレクトしています。その下にあるWordPressルールを削除すると、これは完全に機能しますが、それらを含めると機能しません.

イライラすることに、QUERY_STRING 検索で負の正規表現を使用すると、逆に正しく機能します (次のように、クエリ文字列によるリクエスト以外のすべてをブロックします)。

RewriteCond %{QUERY_STRING} !.*ptrxcz.*

(追加されていることに注意してください!)

誰にもアイデアはありますか:

  1. パーマリンクで機能しない理由
  2. パーマリンクで機能させる方法
  3. クエリ文字列で負の正規表現が機能するのに正の正規表現が機能しない理由。
4

2 に答える 2

1

私は同じ問題を抱えていましたが、フロントエンドとして機能する小さな Web サーバーを起動し、これらの要求をフィルター処理するほど深刻でした。関連する iptables ルールは次のとおりです。

iptables -A INPUT -p tcp --dport 80 -m string --to 70 --algo bm --string 'ptrxcz_' -j DROP

リクエストの最初の 70 文字までを調べ、「ptrxcz_」が見つかった場合は、サイレントにリクエストをドロップするようにシステムに指示します。エラーメッセージを返そうとしましたが、接続の反対側にエラーを読み取るユーザーがいないことを考えると、エラーコードによって消費される帯域幅は価値がありませんでした.

私が行った手順を説明するブログ投稿を作成しました。

http://web.htcomp.net/?pageid=85&blogid=2

ラリー

于 2013-04-22T15:29:43.947 に答える
0

QUERY_STRING上記のコードを に置き換えるとTHE_REQUEST、これは正常に機能し、WordPress 内で必要とされるとおりに動作します。

于 2013-02-21T09:27:14.637 に答える