CakePHPやWordPressなどをインストールする際、多くの書籍やWebサイトでは、ドキュメントルート以下に設置するように書かれています。個人的に、すごく気持ち悪いのですが、仕方なくドキュメントルートに設置しています。


Railsの場合、シンボリックリンクをドキュメントルート以下に設定し、実態は/var以下などに設置するようにしていました。

PHPのフレームワークやCMSツールでも、ドキュメントルート以外に設置することは可能なのでしょうか。また、可能である場合、ドキュメントルートに設置する場合と、シンボリックリンクを貼る場合では、リスクはどう異なるのでしょうか。教えてください。

回答の条件
  • 1人2回まで
  • 登録:2009/10/05 17:37:12
  • 終了:2009/10/12 17:40:02

ベストアンサー

id:tdoi No.2

tdoi回答回数174ベストアンサー獲得回数752009/10/06 18:00:04

ポイント10pt

ドキュメントルート以下に置く必要はありません。

CakePHPに関してですが、以下のサイトのようにすることでできます。

セキュリティということに関してですが、適切に設計されたフレームワーク上で、適切なプログラムを書いてあれば、問題はないとは思います。

CakePHPにおいては、たとえば、ドキュメントルート以下にすべておいたとしても、.htaccessに記述したmod_rewriteの制御によって実質的には、app/webroot以下にしかアクセスされません。

ただ、悪いところを強いてあげるのであれば、これはあくまで適切な環境下だということです。

httpd.confでAllowOverwriteが拒否してあるために、.htaccessが有効でない

.htaccessの記述を間違った場合に、想定外のファイルにアクセス可能となる。

という可能性はあるかと思います。

その際に、テスト用に何か見せたくない情報を表示するスクリプトが残っていた、アタックの原因となるスクリプトにアクセスを許してしまう、想定外のデータを作成してしまうスクリプトがある、などの状況下であれば、それがセキュリティ的な問題を引き起こす可能性はゼロではないと言えるかとは思います。


この他に想定するのであれば、OSレベルでのファイル管理の関係の問題もあるかもしれません。

ファイルアップロードなどの関係で、ドキュメントルートには比較的緩いOSレベルでのアクセス制限をかけておいて、/varなどのシステムディレクトリには、比較的厳しいOSレベルでの制限をかけているのであれば、万が一ハックされた際の影響範囲なども変ってくるということもあるかもしれません。

配備する環境によっては、この他の懸念事項もないとは言えないと思います。


このようなことに意識を向けて、システムを検討すること自体はよいことだとは思いますが、

適切に管理している限り、このようなリスクを考えることよりも、フレームワークが推奨する方法で配備する方が、トラブルも少なく、いろいろな面でメリットが多いのではないかと思います。


何かの参考になれば。

その他の回答(1件)

id:palo No.1

palo回答回数124ベストアンサー獲得回数142009/10/06 11:14:08

ポイント60pt

PHPのアプリケーションをキュメントルート以外に設置することは可能です。

アプリケーション付属のインストール・プログラムがある場合には、

インストール・プログラムを使用してドキュメントルート以下のサブディレクトリにインストールして、

手作業で /var 以下に移動して、apache の alias やシンボリックリンクを設定することもできます。

アプリケーションによっては、スクリプト等の絶対パスを設定に記録するものありますので、

注意が必要です。

セキュリティ上のリスクは、あまり関係ないのではないでしょうか。

id:gets_itai

リスクは関係ないんですねー

2009/10/06 17:15:13
id:tdoi No.2

tdoi回答回数174ベストアンサー獲得回数752009/10/06 18:00:04ここでベストアンサー

ポイント10pt

ドキュメントルート以下に置く必要はありません。

CakePHPに関してですが、以下のサイトのようにすることでできます。

セキュリティということに関してですが、適切に設計されたフレームワーク上で、適切なプログラムを書いてあれば、問題はないとは思います。

CakePHPにおいては、たとえば、ドキュメントルート以下にすべておいたとしても、.htaccessに記述したmod_rewriteの制御によって実質的には、app/webroot以下にしかアクセスされません。

ただ、悪いところを強いてあげるのであれば、これはあくまで適切な環境下だということです。

httpd.confでAllowOverwriteが拒否してあるために、.htaccessが有効でない

.htaccessの記述を間違った場合に、想定外のファイルにアクセス可能となる。

という可能性はあるかと思います。

その際に、テスト用に何か見せたくない情報を表示するスクリプトが残っていた、アタックの原因となるスクリプトにアクセスを許してしまう、想定外のデータを作成してしまうスクリプトがある、などの状況下であれば、それがセキュリティ的な問題を引き起こす可能性はゼロではないと言えるかとは思います。


この他に想定するのであれば、OSレベルでのファイル管理の関係の問題もあるかもしれません。

ファイルアップロードなどの関係で、ドキュメントルートには比較的緩いOSレベルでのアクセス制限をかけておいて、/varなどのシステムディレクトリには、比較的厳しいOSレベルでの制限をかけているのであれば、万が一ハックされた際の影響範囲なども変ってくるということもあるかもしれません。

配備する環境によっては、この他の懸念事項もないとは言えないと思います。


このようなことに意識を向けて、システムを検討すること自体はよいことだとは思いますが、

適切に管理している限り、このようなリスクを考えることよりも、フレームワークが推奨する方法で配備する方が、トラブルも少なく、いろいろな面でメリットが多いのではないかと思います。


何かの参考になれば。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません