33

実稼働環境で、DEBUG = True のままにしておくと潜在的に危険であると人々が言うのを聞くのはなぜですか?

誰かがこのセキュリティの問題を悪用して、サーバーで悪意のあるタスクを実行する可能性のある例は何ですか?

4

2 に答える 2

26

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

「DEBUG をオンにしてサイトを本番環境にデプロイしないでください。

あなたはそれをキャッチしましたか?DEBUG をオンにしてサイトを本番環境にデプロイしないでください。

デバッグ モードの主な機能の 1 つは、詳細なエラー ページの表示です。DEBUG が True のときにアプリで例外が発生した場合、Django は、現在定義されているすべての Django 設定 (settings.py から) など、環境に関する多くのメタデータを含む詳細なトレースバックを表示します。"

基本的に、これは大きなセキュリティ ホールです。

また、多くのメモリを浪費します。

「DEBUG をオンにして実行すると、Django は実行するすべての SQL クエリを記憶することも重要です。これはデバッグ時に役立ちますが、運用サーバーではメモリを急速に消費します。」

于 2013-01-23T00:42:21.163 に答える
19

Django は、デバッグ ページで安全な情報を難読化するために最善を尽くしますが、完全ではありません。

デフォルトでは、KEY (Django 1.4 以降)、SECRET などを含む設定はすべて自動的に*に置き換えられます。ただし、誰かが工夫して SECRET を SECURE_STR などと呼ぶことにした場合、それはプレーン テキストとして表示されます。あなたはそれをしたいですか?また、誰かがあなたのサーバーに簡単にハッキングするのは、単なる餌食です。

于 2013-01-23T00:46:40.447 に答える