Apache でディレクトリ内のファイルを全てインデックス表示してしまう




Apache の設定によっては、ディレクトリ内のファイルを全てインデックス表示してしまう。

本来公開したくないファイル名まで漏えいしてしまうため、
インデックス表示はできないようにしたい。

実際に、インデックス表示してしまう設定にしてみる。

まず、/var/www/html/test ディレクトリを作成した。

次に、下の 4 行を CentOS 5 にインストールした httpd-2.2.3 で
デフォルトの /etc/httpd/conf/httpd.conf に追記した。

<Directory "/var/www/html/test">
    Options Indexes FollowSymLinks
    AllowOverride None
</Directory>

設定の反映は httpd の再起動。

問題は、Indexes の部分。

これにより、インデックスファイルを表示するような設定になっていないか
あるいはなっていても、index.html などがない場合に、
そのディレクトリにアクセスすると、
ディレクトリ内の全てのファイルをインデックス表示してしまう。

例えば、/var/www/html/test に index.html を置かずに、
index2.html, index3.html を置いた場合、
ブラウザから URL に http://[ Web サーバの IP アドレス ]/test/ を指定すると、
次のような結果が表示される。

Index of /test
      Name    Last modified    Size    Discription
Parent Directory                  -
index2.html   25-Sep-2007        63
index3.html   25-Sep-2007        88

Apache は指定された URL に対して表示するファイルが見つからず、
結果的にディレクトリ内の全てのファイルをインデックス表示してしまった。