私たちは突然、DDOS攻撃であると言われている犠牲者になりました。いくつかの.htaccessルールを使用して、以下を使用して、付随するパラメーターをブロックし、ホームページで行われた投稿リクエストとクエリ文字列の先頭に特定のフィールドがあるリクエストに403禁止ページを表示しようとしています。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(ptrxcz|xclzve).* [NC]
RewriteRule ^(.*)$ http://%{REMOTE_ADDR} [F,L]
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} /
RewriteRule ^(.*)$ http://%{REMOTE_ADDR} [F,L]
基本的に、これは、wgetを使用してSSHで問題のあるクエリ文字列を含むファイルにアクセスするが、ブラウザウィンドウではアクセスできない場合は常に正常に機能します。
さらに、Postmaster Google Chromeアドオンはホームページへの投稿リクエストをブロックしますが、curl -dリクエストはブロックされないため、さまざまな結果をもたらすツール(ブラウザー、SSH、ポストマスター)。
私もパーマリンクでWordpressを使用していますが、これらは.htaccessファイル内の他の唯一のものであるため、何らかの形でこれに影響を与えるのではないかと思います。これらを.htaccessファイルから削除すると、すべてが期待どおりに機能します。これは私の現在のルールの後に来るWordpressの.htaccessです。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
さらに、Wordpress以前のルールを変更して[F]とREMOTE_ADDRの部分を削除し、次のように置き換えて、存在しないURLにリダイレクトすると、正しくリダイレクトされます。つまり、[ F]およびREMOTE_ADDRセクション。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(ptrxcz|xclzve).* [NC]
RewriteRule ^(.*)$ http://www.pleasegoawayandnevercomebackagain.com [R=301,L]
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ http://www.pleasegoawayandnevercomebackagain.com [R=301,L]
上記に加えて、さらなる調査について。次のルールは機能します。
RewriteEngine On
RewriteCond %{QUERY_STRING} !.*test.* [NC]
RewriteRule ^(.*)$ http://%{REMOTE_ADDR} [F]
ここでの違いは、クエリ文字列値の負の一致をチェックしていることです。これは、クエリ文字列にテストが含まれているページを除いて、すべてのページが禁止されていることを意味します。ネガティブマッチが機能するのにポジティブ検索が機能しない理由を知っていますか?それは構文の問題ですか、それともhtaccess書き換え条件で正の値を検索することと関係がありますか?