DEBUG =真正的Django

use*_*282 27 django

在生产环境中,为什么我听到有人说离开DEBUG = True是有潜在危险的?

什么是有人可能利用此安全问题在我的服务器上执行恶意任务的示例?

Pat*_*shu 19

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

"切勿在启用DEBUG的情况下将网站部署到生产环境中.

你抓到了吗?切勿在启用DEBUG的情况下将站点部署到生产环境中.

调试模式的主要功能之一是显示详细的错误页面.如果您的应用程序会抛出异常DEBUG为True,Django会显示详细的追踪,包括关于环境的大量元数据,如当前定义的所有Django的设置(从settings.py)".

基本上,这是一个巨大的安全漏洞.

它也浪费了大量的内存:

"同样重要的是要记住,当用DEBUG运行打开,Django会记得每一个执行SQL查询,这时候你调试是有用的,但它会迅速在生产服务器上占用内存."

  • 这似乎没有回答这个问题.OP似乎知道不能在生产中启用DEBUG; 他要求**一个例子**,有人可能利用安全问题在服务器上执行恶意任务.重申"从不这样做"很像"家庭盖伊"中的一集,夸基尔说他不打算与一个应召女郎联系,乔说"好.不要.",然后Quagmire就像"我已经知道不要这样做了,你不必告诉我不要",乔回应:"好,不要". (4认同)
  • 添加此注释 b/c 我对答案投了反对票。“你明白吗,从来没有”确实没有必要。请专家解释“常识”背后的道理并没有什么错。 (2认同)

Pra*_*ota 17

Django尽力在您的调试页面中混淆安全信息,但它并不完美.

默认情况下,任何包含KEY(启动Django 1.4),SECRET等的设置都会自动替换为*.但是,如果某人决定发挥创意并将SECRET称为SECURE_STR或其他任何内容,那么它将显示为纯文本!你想要吗?此外,对于有人轻易入侵您的服务器而言,这只是更多的素材.