(Apache) Index ofページを非表示にする方法

(Apache) Index ofページを非表示にする方法

 

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

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

 

Index ofページとは、、

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

Index-of-page

一覧に表示されているディレクトリやファイルはリンクになっており、
セキュリティの観点から、このページは見せないようにするのが好ましい。
なので、表示させなくする方法を調べてみた。




Index of ページを非表示にする手順

Index ofページを非表示にするには、
結論から言うと以下を実行するだけで良い。

Index ofページを非表示にするには

httpd.confの、
<Directory></Directory>セクションから、
「Indexes」の記述を削除する。

 

具体的に手順を説明していく。

 

httpd.confを編集

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

vi-httpd.conf

 

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

# httpd.conf

<Directory "/usr/local/var/www">      # /usr/local/var/www セクション始まり
    #
    #
    #
    #
    #
    Options Indexs FOllowSymLinks

    #
    #
</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

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

 

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

コメントを残す

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