ディレクトリリスティングとは
ディレクトリリスティングとは、URL でディレクトリを指定すると、ディレクトリに含まれるファイル一覧を表示する Web サーバー(Apache, IIS 等) の機能です。
具体的には、ディレクトリを URL で指定すると、下図のようにファイル一覧が表示されます。
ファイルをダウンロードする Web サイトでは問題ありませんが、一般的な Web サイトでディレクトリリスティングが有効になっていると、Web サイトの構造が攻撃者に分かってしまうため脆弱性として扱われます。
そのため、Web サイトでは、ディレクトリリスティングは無効にします。
Apache のディレクトリリスティング無効化
Apache のディレクトリリスティングを無効にするには、Web サイトの設定ファイル(httpd.conf)のエイリアスの設定から、Indexes というキーワードを削除します。デフォルトで複数のエイリアスに Indexes が存在するので確実に削除してください。
以下のファイルを編集します。
vi /etc/httpd/conf/httpd.conf
下記の Indexes があるエイリアスを見つけ、4行目の Indexes を削除して保存します。
Alias /icons/ "/var/www/icons/" <Directory "/var/www/icons"> Options MultiViews Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
変更後は、以下のようになります。
Options MultiViews FollowSymLinks
Web サーバーを再起動します。
# service httpd restart
そうすると、下図のようにディレクトリの表示が拒否されるようになります。
コメント
Indexes で表示されるタイムスタンプと、ls で表示されるタイムスタンプが違うのですが、これを mtime に揃える方法ってないのでしょうか。