主なコンポーネントがサブフォルダーに格納されているスクリプトがあります。すべてのコンポーネントは、コントローラーとして機能する index.php からのみアクセスできます。コンポーネントフォルダーをパブリックアクセス/可視性から隠す方法を考えているとき、私は2.オプションを念頭に置いていました:
- すべてのディレクトリで .htaccess を使用して、403 Forbidden エラーを配信します。
次の php スクリプトと「偽の」404 HTML メッセージを含む index.php をすべてのフォルダーに配置します。
header('HTTP/1.0 404 Not Found');
両方のオプションを試し、OWASP ZAP でスキャンを行いました。最初のオプションでは、すべてのシステム フォルダに 403 が配信されたため、スクリプトの構造全体を取得できました。2 番目のオプションでは、OWASP はスクリプト フォルダーの一覧を表示できませんでした。これは、404 がフォルダーがないと通知したためです。
htaccess はすべてのアクセスをブロックしますが、偽の 404 を使用すると、ディレクトリがあることさえわかりません。
.htaccess のセキュリティと、配信された 404 の適切な難読化を実現するための回避策はありますか?
編集: サーバーの制限により、アクセス可能なスクリプト パスの外にコンポーネントを移動することはできません。