匿名質問者

Django CentOsについての質問です


マニュアルドキュメントに

(引用)
”これまでは Web サーバのドキュメントルート下 (/var/www といった場所) にコードを配置してきたことでしょう。 Django ではそうする必要はありません。むしろ Python コードをドキュメントルート 下に置くのは賢明ではありません。コードをドキュメントルート下に置くと、 誰かがコードを Web を介して読めるようになってしまうからです。これは安全 上よろしくありません”
http://docs.djangoproject.jp/en/latest/intro/tutorial01.html

と書いてあったのですが今、私が作っている、ローカル開発環境下でも(virtualbox + centOS)コードを/var/www/html/の下に入れてはダメなのでしょうか?

ドキュメントには安全上よろしくないとありましたが、どういった点が宜しくないのでしょうか?
いつも/var/www/htmlの下に入れていたのでものすごい違和感があります。
普通どこに置くものなのでしょうか?
初歩的な質問ですがよろしくお願いいたします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/07/21 23:25:03

回答2件)

匿名回答1号 No.1

外部からアクセス可能にしている場合は、同じようにウェブサーバーのドキュメントルートの外側に設置した方が良いです。
もしそうでなくても、慣れるためにドキュメントルートの外側に設置した方が良いと思います。
ドキュメントルート以下のディレクトリは、ウェブ用に公開されているディレクトリですから、設定ミス等があった場合に、コードを読まれる危険性があります。
/var/www/htmlがドキュメントルートなら、/var/www/data、/var/www/site1などドキュメントルート外に適当なディレクトリを作成して設置します。
/var/wwwがドキュメントルートなら、/var/mydata、/var/site1などに作成します。

匿名回答2号 No.2

DocumentRoot 上に CGI 等の Web サーバを介して実行されるプログラムを置くことが、セキュリティ上、好ましくない理由は、不用意に配置してしまうと、プログラムファイル自体がダウンロードされる状況になってしまう可能性があるからです。

DocumentRoot に対して、通常、Web サーバのデフォルト設定で、そこに置かれたコンテンツが閲覧・ダウンロード可能な状況になってます。その配下にディレクトリを作成して、適切な Web サーバの設定をするためには、DocumentRoot から継承される設定がどうなるかを正確に知っている必要があります。

DocumentRoot 外に置けば、そういった「デフォルトで公開される設定」は無くなるので、動かしたい Web アプリケーション用の設定を確実に行う事ができます。

...というのが理屈で、実際、rpm パッケージでインストール可能な Web アプリケーションは、/usr/share の下に配置し、/etc/httpd/conf.d 以下にそのアプリケーション用の設定が置かれる事が多いです。

ただ、

私が作っている、ローカル開発環境下でも(virtualbox + centOS)コードを/var/www/html/の下に入れてはダメなのでしょうか?

という場合に、ダメという程の理由はありません。ダメではないけど、普段から DocumentRoot の外に置いておけば、実際に公開状態にする時に、間違いを犯す事は少なくできると思います。

もっとも、/var/www の外側に置くと、SELinux を有効にした場合に面倒になりますが(^^;。

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

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

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

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

回答リクエストを送信したユーザーはいません