ディレクトリ非表示の意味をもう一度見つめ直すセキュリティ対策の「ある視点」(2)(2/3 ページ)

» 2007年08月22日 00時00分 公開

ファイル名が知られるということの意味

 無料で配布されているようなCGIなどのREADMEファイルには「データやパスワードなどの機密情報を格納するファイル名は変更するように」と書かれていることがある。これは、直接そのファイル名をリクエストされてしまった場合に外部から閲覧される恐れがあるからだ(これが原因で情報が漏えいした事例も過去に存在する)。

 重要な情報が格納されているファイルに対して、安易な名前を付けないという対策も大事かつ必要であるが、それを行っていてもディレクトリの中身が丸見えでは十分な対策とはいえない。

 そのように意図せずに情報が漏えいしてしまわないために、ディレクトリインデックスを取得できない設定方法を紹介しよう。

【注】

インデックス・ファイルを各ディレクトリに置いておけばという解決方法もあるのだが、置き忘れなどのミスが考えられるため、ここでは設定による対策を書かせていただく。


まずは“対策”――ディレクトリリスティングを制限する

 Apacheの設定ファイル(/usr/local/apache/conf/httpd.confなど)をエディタで開き、その中に存在する“Indexes”というオプションを削除し、Apacheを再起動する。

<Directory "/usr/local/apache/htdocs">

Options Indexes Includes FollowSymLinks

<Directory "/usr/local/apache/htdocs">

Options Includes FollowSymLinks


 ただ、ここで気を付けないといけないのは<Directory>ディレクティブが複数存在する場合である。

 例えば、設定ファイル内に以下のような記述があった場合だ。

<Directory "/var/www/html">

Options Indexes FollowSymLinks

(略)

<Directory "/var/www/icons">

Options Indexes MultiViews

(略)


 この場合、それぞれのディレクティブでIndexesの指定を削除する必要がある。

 これにより、インデックス・ファイルの存在しないディレクトリにアクセスが行われたとしても、Indexesオプションを削除し、ディレクトリリスティングを禁止とする設定となっているため、以前のようにディレクトリリストは表示されず、図3右のように「Forbidden」となる。

図3 Indexesを削除した場合の表示例 図3 Indexesを削除した場合の表示例

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。