(Apache) ディレクトリ階層が表示されてしまう、Index ofページを表示させないようにする

hide-index-of-page

 

URLからディレクトリ階層にアクセスした際に表示される、
index ofページを表示させなくした時の手順をメモ。

セキュリティ的にindex ofページは表示させない方が良いとされている。

 

Index ofページとは、、

ブラウザからディレクトリ階層にアクセスした際に表示される、ディレクトリ内の一覧ページのこと。Indexページがその階層に設置されていないと表示される。

 

これは実際の筆者のローカル開発環境の例。ドキュメントルートだ。

Index-of-page

インデックスページである「index.html」は、一時的にインデックスページとして読み込まれないよう「index.html_bk」という名前に変更してある。

一覧に表示されているディレクトリやファイルはリンクになっている。

セキュリティの観点から、このページは見せないようにするのが好ましい。
なので、表示させなくする方法を調べてみた。

 

Index of ページを見せなくするには、、

httpd.conf(apacheの設定ファイル)を修正する必要がある。
その中の設定値で、一点だけ、値を変更する

順に手順を紹介。

 

httpd.confを編集

まずはhttpd.confを適当なエディタで開く。

vi-httpd.conf

 

そうしたら、Index ofページを表示させたくないディレクトリのセクションを見つける。
ディレクトリのセクションとは、<Directory></Directory>で囲まれている、エリアのことだ。

下記は筆者のローカルPCのドキュメントルート(/usr/local/var/www/)のセクション部分

 

上記セクションの赤枠で囲ってある部分、Options Indexes followSymLinksが見えるだろうか。この「Indexes」の部分を削除すればOK。

下記画像が削除後の画像

 

設定を保存して、apache再起動

できたら保存して、apacheを再起動。

service httpd restart

 

ディレクトリへブラウザからアクセス

再度ブラウザから、先ほど設定を変更したディレクトリへアクセスしてみてほしい。
筆者の場合、ドキュメントルートなので「localhost:8080/」にアクセス、すると

Forbidden

Index ofページが表示されなくなった。
代わりに「Forbidden(不許可)」って怒られてる。

 

Indexesを消したのが効いているのがわかる。
一覧ページが表示されなくなった。

 

さくらのレンタルサーバだと

このブログはさくらのレンタルサーバで運用しているが、
同じようにディレクトリにアクセスしてみると、、

forbidden

同じ画面が出た、まあやってることは正しいってことでいいのかな?

 

ちなみに、セクションの有効範囲

余談だが、
ディレクトリセクションで指定した設定は、サブディレクトリ全体へと効果が及ぶ。

つまり今回はドキュメントルートのディレクトリに、Indexを見せないという設定をしたが、この設定はサブディレクトリ全てに受け継がれるため、実質外部からのアクセスではどのディレクトリにアクセスしたとしても、Index ofページを見ることはできないということになる。

ポイント

ディレクトリセクションで指定した設定は、サブディレクトリ全体へと効果が及ぶ。

 

試しにサブディレクトリの「localhost:8080/rpg/」にアクセスしてみる

Forbidden

同じ結果になった。
上位階層の設定が、下位階層へ同様に適用されているのが確認できる。

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。