私はそのようにディレクトリリストを無効にしました...
Options -Indexes
私がこのようなディレクトリにアクセスしようとすると:-
www.example.com/secret/
私が手403禁止応答を。
ただし、404 Not Found応答が必要なので、ハッカーは私のディレクトリ構造を簡単に推測できません。どうすればいいですか?
私はそのようにディレクトリリストを無効にしました...
Options -Indexes
私がこのようなディレクトリにアクセスしようとすると:-
www.example.com/secret/
私が手403禁止応答を。
ただし、404 Not Found応答が必要なので、ハッカーは私のディレクトリ構造を簡単に推測できません。どうすればいいですか?
回答:
私は同様の問題の答えを求めてインターネットを見回しました。mod_rewriteは可能な解決策ですが、最善の解決策は「RedirectMatch」ディレクティブを使用することです。
StackOverflow:403 Forbiddenから404 Not Foundへのリダイレクトの問題を参照してください
代わりに404エラーを返すカスタム403スクリプトを作成します。
たとえば、PHPでは:
<?php
header("HTTP/1.0 404 Not Found");
die("<h1>404 Not Found</h1>");
?>
次に、403の結果に対してこのスクリプトを使用するようにApacheを構成します。
ErrorDocument 403 /403.php
書き換えをいじる必要はなく、サーバー全体で即座に機能します。
header()
。コマンドが原因で、サーバーは正しい404エラーで応答します。
ディレクトリのコンテンツのリストとしての表示を停止し、404エラーを表示する私の解決策は簡単です。プロジェクトのルートディレクトリに.htaccessファイルを作成し、保護するディレクトリを記述します。
ディレクトリ構造
- your_root_directory
- .htaccess
- 404.html
- index.html
- app
- other files I do not want to show
- models
- other files I do not want to show
.htaccess
RewriteEngine On
RewriteRule ^app/ - [R=404,L]
RewriteRule ^models/ - [R=404,L]
ErrorDocument 404 /your_root_directory/404.html
.htaccessの2行目は、アプリディレクトリとそのすべてのサブディレクトリ内のリストアイテムへのアクセスを許可しません。
.htaccessの3行目は、modelsディレクトリとそのすべてのサブディレクトリ内のリストアイテムへのアクセスを許可しません。
.htaccess行の4番目は、独自の404エラーを設定します(Apacheのデフォルトエラーを表示したくない場合)。
htaccessを使用する場合は、ブラウザのキャッシュをクリアしてください。
エラーをマスクするには、.htaccessを使用します。このガイドを参照してください: