为什么提供静态文件不安全



这可能是一个愚蠢的问题,答案很明显,但我正在测试404和500错误处理程序,这意味着我必须将调试切换到False。我转到Django管理页面,注意到静态文件没有被提供。

我知道它们应该通过Apache路由,因为通过Django提供静态文件是不安全的。然而,我不太明白为什么直接通过Django提供静态文件会有安全风险?

以下是Django 1.8文档中关于的内容

--insecure

即使DEBUG设置为False,也可以使用--insecure选项强制使用staticfiles应用程序提供静态文件。通过使用它,你承认了这样一个事实,即它效率极低,而且可能不安全。这仅用于本地开发,不应在生产中使用,并且仅当staticfiles应用程序处于项目的INSTALLED_APPS设置中时才可用。

正如你所看到的,他们说";效率极低";以及";可能不安全";。他们没有说";绝对不安全";或";不安全";。我认为他们暗示的是,他们还没有对staticfiles应用程序及其与Django其他部分的交互进行彻底的安全分析。

对我来说;效率极低";部分应该足以阻止您提供静态内容。做得更好很容易。。。从CCD_ 8命令开始。


通过更多的搜索,我看到了这篇谷歌群组的帖子,以回应有人问--insecure为什么不安全。

发件人:Malcolm Tredinick

除非设计和审核安全我们对静态文件服务器都没有做过。可能不会存在安全漏洞,但不应将其视为安全因为这不是设计目标。

例如,安全文件服务器需要检查资源分配问题,使得提供非常大的文件不构成拒绝服务攻击。这需要大量额外的代码和不值得投入的管道管理用于开发目的。

这支持了我的解释。

最新更新