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 に対して表示するファイルが見つからず、
結果的にディレクトリ内の全てのファイルをインデックス表示してしまった。