![退会済みユーザー](https://ddjkaamml8q8x.cloudfront.net/profileImages/deletedUser/icnUserSample.jpeg)
よろしくお願いします。
PHPの入門書には、よく「セキュリティの観点から、ルートディレクトリに全部のファイルを置くのはよくない」と書かれています。
しかし、これ、具体的にどういう意味なのか、なぜよくないのか、じゃあどうすればいいのか、ということについて、ほとんど解説されてないので、ちんぷんかんぷんです。
とはいえ、ここで「誰か私にこのへんのこと全部やさしく教えて」とだけ質問するわけにはいきません。
そこで、まずは私なりに調べたり考えたりしてきたことを箇条書きにしますので、誤解している点、理解の足りない点などをご指摘いただきたくお願いします。
■■
1)ブラウザでいろんなサイトを見てると、Index of/ みたいな表示のもとでサーバー上のあるフォルダの中身がwindowsのエクスプローラーみたいに表示されてしまうことがあるが、そういう場合に、例えばデータベースへの接続情報が書かれているファイルなども開かれてしまうから、 Index of/ という状態でも表示されないよう、ユーザーに見られては困るものは別フォルダに入れておくべき、というのが、「セキュリティの観点から云々」の主旨である。
2)webアプリが複数のフォルダとそれぞれに入った複数のファイルから構成されているとして、どのフォルダが「ルートディレクトリ」なのかというのは、フレームワークを使って開発したのでもない限り、これといって決まりはない。フォルダの命名や構成によって確定されるものではない。
3)じゃ、どうやって、特定のフォルダを「これがルートディレクトリ」と設定するかというと、.htaccessというファイルにそのへんのことを書いておくことで実現する。
4)極端なことを言えば、ルートディレクトリには、実質的には中身スッカスカのindex.phpというファイルをひとつ置いておくだけにするのが最も安全。そのindex.phpの中のコードは、require_onceだらけで、非ルートの別フォルダ内のphpファイルを参照したり呼び出しまくればいいんだから。
5)なんにしろ、とにかく.htaccessのことを勉強しなくてはだめだ。逆に言えば、ルートディレクトリ云々については、.htaccessを勉強するだけでOK。でも「.htaccess入門」という書籍なんかない。ネットで検索してあちこち見ながら学ぶしかない。上級者の人たちもそうしてきた。
■■
以上5点です。
どうでしょうか?
![退会済みユーザー](https://ddjkaamml8q8x.cloudfront.net/profileImages/deletedUser/icnUserSample.jpeg)
![guest](/img/icon/icnUserSample.jpg)
回答2件
あなたの回答
tips
プレビュー