- ベストアンサー
PHPでの階層構造
- PHP初心者のための階層構造の基本的な設定方法について解説します
- 階層構造によるファイルの配置方法やアクセス制限の方法を説明します
- PHPファイルへの直接アクセスを制限する方法について紹介します
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
実際今試してみました。 実験環境は以下の通りです。 Fedoracore3 Linux apache2.0.52 PHPのバージョンは同じく4だったと思います。 階層は以下の通り /(ルート) ├home(ユーザー用全体ディレクトリ) ├user(ユーザーのホームディレクトリ) │ ├public.html(webで見られるドキュメントルート) │ │ └test.php(呼び出し側スクリプト) │ └vars1.php(呼び出されるデータ1) └vars2.php(呼び出されるデータ2) (分かりにくくて申し訳ありません。) 結果から言うと私の環境下では所有者をルートでもユーザーでも homeディレクトリ直下までは呼び出しが出来ます。 ただしドキュメントルートより上に置くことは セキュリティの関係からもあまり賢明ではないと思われます。 もし呼び出したいPHPスクリプトがあるなら ドキュメントルート直下に何かディレクトリを作って(./include/等) まとめておけば良いのではないでしょうか? また、管理者がユーザー制限を厳密にやっていれば 呼び出すことも出来ないかと思われます。 いずれにしろ、stupid_honeyさんの環境が分かりませんので 断言はできませんが可能ではあるということで宜しいでしょうか。
その他の回答 (1)
- MicroK2O
- ベストアンサー率53% (33/62)
.htaccessで任意ディレクトリに直接パスワードなりIP制限なりかけるのも手ですが 折角PHPを使うのでしたらスクリプトにその機能を含ませたらどうでしょう。
お礼
早速のご回答ありがとうございました。 とりあえずの対策として、.htaccessでアクセスされたくないディレクトリは認証制限を設けました。 あと、PHPファイル自体をドキュメントルートより上の階層に置いてrequire等で呼び出すことはできるのでしょうか?
お礼
お返事が遅くなりまして申し訳ありません。 色々と試したのですが、includeするものに関してはドキュメントルートより上の階層にphpスクリプトを設置しても呼び出せました。よってブラウザから直にアクセスすることは不可能になりました。 とりあえずの手段としては、スクリプトを呼び出す側で値をPOSTする際にhidden等に持たせて、呼び出される側でどこから呼ばれたのかを判断するようにしました。