2013-01-23 14 views
15

プロダクション環境では、DEBUG = Trueのままにしておくと潜在的に危険であると言う人がいるのはなぜですか?DEBUG = True Django

私のサーバーで悪質なタスクを実行するためにこのセキュリティ問題を悪用する可能性のある例は何ですか? DEBUGをオンに

+0

あなたは正しいansを受け入れるべきです。 – shuboy2014

+0

@ PraveenGollakotaの回答 –

答えて

11

https://docs.djangoproject.com/en/dev/ref/settings/#debug

は「生産にサイトを展開しないでください。

は、あなたがそれをキャッチしましたか?DEBUGをオンにして生産にサイトを展開しないでください。主な機能の

ワンDEBUGがTrueのときにアプリが例外を発生させた場合、Djangoは現在のDjango設定(設定からのもの)のような、あなたの環境に関する多くのメタデータを含む詳細なトレースバックを表示します。パイ)

基本的には、大きな穴が開いています。

また、大量のメモリを無駄に:DEBUGをオンにして、Djangoはそれが実行されるすべてのSQLクエリを覚えているでしょう実行しているときに、デバッグしているときに便利であることを覚えておくことも重要である」

が、運用サーバー上でメモリを急速に消費します。

+0

を受け入れる必要がありますので、** DEBUG **をプロダクションに割り当てる必要がありますか? – shuboy2014

+0

@ shuboy2014プロダクション環境のための 'DEBUG = False' –

+0

これは質問に答えていないようです。 OPは生産時にDEBUGを有効にしないことを知っているようです。 **誰かがセキュリティ上の問題を悪用してサーバー上で悪意のあるタスクを実行する可能性のある**例**を求めました。 「やってはいけない」と繰り返すことは、Family Guyのエピソードでは、Quagmireがコールガールと一緒にならないと言い、Joeは「Good。Do not」と言います。そしてQuagmireは「Iすでにそれをしていないことを知っている、あなたは私に言わせる必要はありません "、ジョーが応答する:"良い、しないでください "。 –

6

Djangoはデバッグページで安全な情報を難読化しようとしますが、完璧ではありません。

デフォルトでは、KEY(Django 1.4を起動)、SECRETなどの設定は自動的に*に置き換えられます。しかし、誰かがクリエイティブになりSECRETをSECURE_STRなどと呼び出すと、プレーンテキストとして表示されます。それが欲しいですか?また、誰かが簡単にあなたのサーバーにハックするのはちょっと酔っぱらいです。

+0

秘密情報が漏洩する可能性のある素晴らしい例です。 –

関連する問題