ディレクトリリスティングとは
ディレクトリリスティングは、URLがフォルダを指していて、そこに index.html などの既定のファイルがないときに、サーバーがフォルダの中のファイル一覧を表示してしまう状態です。画面の見出しに「Index of /」と出るのが目印です。
ディレクトリリスティングが危険な理由
公開するつもりのないファイルが、名前と一緒に見える状態になります。バックアップ(.zip、.sql)、ログ、一時ファイル、設計書、利用者がアップロードした書類などです。攻撃者はファイル名を推測する必要がなく、一覧からそのままダウンロードできます。
WordPressでは、wp-content/uploads/ の一覧が見える状態が典型です。フォームで受け付けた書類を、そこへ保存している場合は、とくに注意が必要です。
ディレクトリリスティングの仕組み
- フォルダにアクセスすると、サーバーはまず、既定のファイル(
index.html、index.phpなど)を探す。 - 見つかれば、それを返す。
- 見つからず、一覧表示が有効だと、ファイル一覧を返す。無効なら、通常は403を返す。
Apacheでは mod_autoindex と Options Indexes、nginxでは autoindex on が、一覧表示の設定です。
ディレクトリリスティングの確認方法
ブラウザで、https://example.com/wp-content/uploads/ のようなフォルダのURLを開きます。ファイルが並んで表示されれば、有効です。コマンドでは次のとおりです。
curl -s https://example.com/wp-content/uploads/ | grep -i -E '<title>Index of|Directory listing for'
1行でも表示されれば、一覧が見えています。
ディレクトリリスティングの設定例
Apache(.htaccess)の例です。サーバー側で AllowOverride Options が許可されている必要があります。
Options -Indexes
nginxの例です。既定はoffですが、明示します。
autoindex off;
IISでは、IISマネージャーの「ディレクトリの参照」を無効にします。WordPressでは、本体が wp-content などに空の index.php を置いていますが、uploads の下の年月フォルダには置かれません。上のサーバー設定で、全体を塞ぎます。
よくある間違いと注意点
- 一覧を消しても、ファイルのURLを知っていれば取得できます。バックアップなど、公開の必要がないファイルは、公開フォルダに置かないことが基本です。
Options -Indexesを書いて500エラーになる場合は、サーバーが.htaccessでのOptionsの変更を許可していません。ホスティング会社の設定を確認します。- robots.txtに書いても、アクセスは防げません。むしろ、置いてある場所を教えることになります。
- メインのフォルダだけを直して、
/backup/や/files/などの個別のフォルダが残るのは、よくある漏れです。
Webサイト セキュリティチェッカーで確認する
Webサイト セキュリティチェッカーは、トップや /uploads/、/backup/ など、よく使われるフォルダのURLを調べ、ファイル一覧が表示されていないかを診断します。.git、.env、バックアップファイルが公開されていないかも、あわせて調べます。
関連用語
関連する用語
サイトの設定を無料で確認する
サイトのURLを入力するだけで、ディレクトリリスティング などの設定状況を診断できます。Webサイト セキュリティチェッカー「Security Checker X」は、登録なしで使えます。









