暴露错误消息

在开发过程中,通过浏览器检查错误和跟踪异常是非常有用的。 Django提供了漂亮且详细的debug信息,使得调试过程更加容易。

然而,一旦在站点上线以后,这些消息仍然被显示,它们就可能暴露你的代码或者是配置文件内容给攻击者。

还有,错误和调试消息对于最终用户而言是毫无用处的。 Django的理念是,站点的访问者永远不应该看到与应用相关的出错消息。 如果你的代码抛出了一个没有处理的异常,网站访问者不应该看到调试信息或者 任何 代码片段或者Python(面向开发者)出错消息。 访问者应该只看到友好的无法访问的页面。

当然,开发者需要在debug时看到调试信息。 因此,框架就要将这些出错消息显示给受信任的网站开发者,而要向公众隐藏。

解决方案

正如我们在第12章所提到的,Django的DEBUG 设置控制这些错误信息的显示。 当你准备部署时请确认把这个设置为:False

在Apache和mod_python下开发的人员,还要保证在Apache的配置文件中关闭 PythonDebug Off 选项,这个会在Django被加载以前去除出错消息。