2013/03/04

ALLOWED_HOSTS

Djangoの1.5が出たので、ロクにドキュメントも読まずにアップデートしたら、DEBUG=False の時だけ Internal Server Error が出るようになってしまいました。

DEBUGをTrueにすると現象が出ないので、何が間違っているのか調査のしようがありません。

原因は ALLOWED_HOSTS が宣言されていなかったことでした。

Django-1.4で作成したプロジェクトの settings.py に次の行を追加することで、とりあえず動くようになります。

ALLOWED_HOSTS = [ '*' ]

リリースノートに、ちゃんと書いてあるじゃん!読めよ!みたいな。。。
ALLOWED_HOSTS required in production
The new ALLOWED_HOSTS setting validates the request’s Host header and protects against host-poisoning attacks. This setting is now required whenever DEBUG is False, or else django.http.HttpRequest.get_host() will raise SuspiciousOperation. For more details see the full documentation for the new setting.
企業ユースだとセキュリティ的に接続元を限定したくて、Apache の Allow fromを 宣言することが多いのですが、これだと設定ファイルに書けばいいので楽チンですね。オーバーヘッドは気になりますけど・・・。


0 件のコメント:

コメントを投稿