http://www.xxxxxx.jp/images/などと指定してWebブラウザから見てみると,images/の階層にはindex.htmlが無いためにディレクトリが丸見えになることがある。このような場合には,ダミーのindex.htmlを置いておけばよいなどという定説もあるが,サーバ側の設定で根本的に解決することも可能だ。
ほとんどのApacheの標準設定では,このようにindex.htmlが存在しないディレクトリにアクセスするとファイル一覧が見られてしまう
Apacheではimages/ディレクトリにアクセスがあった場合,Directory_Indexディレクティブで指定されたファイル(ほとんどの場合は,index.htmlなど)を探す動作が行われる。存在しない場合には,対象のディレクトリでIndexesオプションが有効になっているかどうかが判別される。このIndexesオプションを操作すれば,ファイル一覧ではなくエラーを返すことが可能なのだ。
# vi /usr/local/apache/conf/httpd.conf 〜中略〜 <Directory "/usr/local/apache/htdocs"> Options Indexes Includes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> 〜後略〜 |
Red Hat Linuxでは,「/etc/httpd/conf/httpd.con」になるが,上記のようにApacheの設定ファイルを編集すればよい。ドキュメントルートを定義している個所を見つけ出し,「Indexes」が含まれているかどうかを確認しよう。ファイル一覧を表示させたくない場合には,Indexes項目を削除してApacheを再起動させればよい。
# /etc/rc.d/init.d/httpd restart または, # /usr/local/apache/bin/apachectl restart |
Indexesを無効にすると,このようにファイル一覧は表示されずにエラーが返されるようになる
Copyright © ITmedia, Inc. All Rights Reserved.