質問: レンサバの共有サーバーでのディレクトリ構成と安全性について教えてください。 レンサバのフルパスを`home/user/gununu/`と仮定します。 Webサイト(http://gununu.hoge)を運営するために、htdocsというフォルダを作成し、独自ドメインであるhttp://gununu.hogeは`home/user/gununu/htdocs/`を参照するように設定したと仮定します。 ■質問1 PHPでデータベース(MySQL)にアクセスするファイルをhtdocs内ではなく、configというフォルダを作成し、`home/user/gununu/config/`内に置くことで安全面に違いはありますか? config内に置くことでURLを叩いて直接アクセスはできないようになると思いますが、そもそもhtdocs内にDB情報を記載したphpファイルを設置して、直接アクセスされてもDB情報は表示されないので違いはないかと思いますが、上述した方法をやる意味はあるのでしょうか。 ■質問2 こちらの記事で共用サーバーではセッションファイルの保存先は変更する必要があると記載されております。 変更する理由についてはわかりました。 ただ「自分だけのホームディレクトリかつ非公開領域にセッション用のディレクトリを作成」の非公開領域というのはどこを指すのででしょうか。 非公開領域と聞くと、私は下記の3種類が思いつきます。 * `home/user/gununu/config/`のようにhtdocs以外のディレクトリのこと * htdocs内のディレクトリで、robots.txtでdisallowを指定したディレクトリのこと * htdocs内のディレクトリで、htaccessのbasic認証を設定したディレクトリのこと 上述した3種類は全て非公開領域に該当しますか。 それとも、非公開領域とは別の場所・方法を指すのでしょうか。 ご存知の方いれば、教えてくださいm(__)m
回答: ■質問1について 通常運用時では違いがありませんが、何かで設定ミスをしてPHPが実行されなくなった場合に、設定内容が`htdocs`以下にあるとPHPのソースをダウンロードされてしまう危険があります(WordPressでも、DBパスワードなどが入った設定ファイルだけは、1つ上のディレクトリに置けるようになっています)。 ■質問2について 当該ページを読み進めてみると、「htdocsの外」ということを意味しているようです。