2016-08-11 16 views
-1

PHPファイルへのリクエストをブロックして404.phpファイルを表示するために、私の.htaccessファイルに次のコードがあります。サブディレクトリにあるPHPファイルを書き換えます

RewriteCond %{REQUEST_URI} !(index|backup).php 
RewriteCond %{REQUEST_URI} !^\/(dir1|dir1)\/ 
RewriteCond %{REQUEST_URI} !404.php 
RewriteCond %{REQUEST_URI} .*\.php 
RewriteRule .* 404.php [L] 

index.phpを、backup.phpを除くすべてのPHPファイルとDIR1とDIR2内のファイルにこのブロックを要求。これは、ルートのリクエストのために働く:

http://www.example.com/some-file.php 
http://www.example.com/another-file.php 

しかし、それはサブディレクトリ内のファイルでは動作しません:

http://www.example.com/sub/some-file.php 
http://www.example.com/sub/another-file.php 

私はサブディレクトリ「サブ」は実際にはないことを言うべき存在する。リクエストはサイト内の穴を探している自動スキャナーから来ています。このファイルはデータベースまたはアプリケーションのいずれもロードしないので、404.phpへのリクエストを書き換えています。私がこれをしないと、代わりに完全なアプリケーション404がロードされ、MySQLをクラッシュさせ続けるため、毎分100回これらの要求が1日に数回発生します。

私の質問は、サブディレクトリで動作するようにコードを変更する方法です。 REQUEST_URIに完全サブディレクトリが含まれていると思ったので、コードはそのまま動作するはずです。あなたは、ちょうどsubへのアクセスを拒否し、別のRewriteRuleを持っているあなたの他のルールの前にこれを入れて、それだけで403要求し、処理を停止することができ

答えて

-1

RewriteCond %{REQUEST_URI} ^/(sub.*|othersub.*)$ 
RewriteRule .* - [F] 

私はにこのような別のリストを続けるだろう攻撃を釣っている人は403カテゴリに分類されますが、潜在的に有効なURLを探している間違いは404です。

+0

これは実際には存在しないため動作しません。自動化された不正利用スキャナによってリクエストされています。ブロックする特定のディレクトリのリストがありません。サーバー上の唯一の有効なPHPファイルはindex.phpであり、このルールを使用すると許可されているため、すべての.phpファイルをブロックすることは問題ではありません。 –