Web - ディレクトリリスティング

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

ディレクトリリスティングとは、Webサーバがディレクトリ内のファイル一覧を自動的にWebブラウザに表示する機能である。
この機能は、index.htmlやindex.php等のデフォルトページが存在しない場合やURLで直接ディレクトリにアクセスした場合に有効となる。

ディレクトリリスティングが有効な場合の表示例として、以下に示すような形式でディレクトリ内のファイル一覧が表示される。
以下の例では、imagesディレクトリ内に3つの写真ファイルが存在しており、各ファイルについてファイル名、更新日時、ファイルサイズが表示されている。

また、画面上部には親ディレクトリにアクセス可能なリンクが表示されるため、ファイル階層をWebブラウザ上で移動することが可能となる。

Index of /images/
..
photo1.jpg    2024-01-01 12:00    500KB
photo2.jpg    2024-01-02 15:30    750KB
photo3.jpg    2024-01-03 09:15    600KB


この機能は、ディレクトリ内のファイル構造が公開されてしまうため、必要に応じて適切に制御する。
多くの場合、本番環境ではセキュリティ上の理由からディレクトリリスティングを無効化することが推奨される。


ディレクトリリスティングの無効化

ディレクトリリスティングが有効な場合、セキュリティ上の問題となる。

  • サイトの構造が外部に漏洩する。
  • 非公開のはずのファイルが見えてしまう可能性がある。
  • 攻撃者にとって有用な情報を提供してしまう。


そのため、多くの場合はディレクトリリスティングを無効にする。

  • Apache2の場合
 # .htaccessファイル
 Options -Indexes


  • NginXの場合
 # .confファイル
 autoindex off;


ディレクトリリスティングが必要な特殊なケース (例: ファイルダウンロードページ等) では、適切なアクセス制御を施した上で限定的に有効にすることもある。


代替方法

ディレクトリリスティングを無効化する以外では、以下に示すような対策を取ることが推奨される。

  • 各ディレクトリにおいて、index.html、index.phpファイル等を配置する。
  • アクセスされた場合、404ページや403ページにリダイレクトする。
  • 必要なファイルへは直接リンクを張る。