为什么服务静态文件不安全

时间:2015-06-28 07:49:15

标签: django security django-staticfiles static-files

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

据我所知,他们应该通过Apache路由,因为通过Django服务静态文件是不安全的。但是,我不太明白为什么直接通过Django提供静态文件会带来安全风险?

1 个答案:

答案 0 :(得分:12)

以下是Django 1.8文档中关于此主题的内容:

  

--insecure

     

即使--insecure设置为DEBUG,也可使用False选项强制使用staticfiles应用程序提供静态文件。通过使用它,你承认它非常低效并且可能不安全。这仅适用于本地开发,绝不应在生产中使用,仅在staticfiles应用程序位于项目的INSTALLED_APPS设置中时才可用。

正如你所看到的,他们说“非常低效”和“可能不安全”。他们没有说“绝对不安全”或“不安全”。我认为他们所暗示的是他们没有对staticfiles应用程序及其与Django其余部分的交互进行彻底的安全性分析。

对我来说,“非常低效”的部分应该足以阻止你提供静态内容。这很容易做到......从collectstatic命令开始。

更多搜索引导我查看此Google网上论坛帖子,以回应有人询问为什么--insecure不安全。

来自:Malcolm Tredinnick

  

除非经过设计和审核,否则不能认为是安全的   安全。我们既没有使用静态文件服务器也没有。它可能不会   有现有的安全漏洞,但不应该被认为是安全的   因为那不是设计目标。

     

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

     

此致

     

马尔科姆

...支持我的解释。 (但我不同意他将安全性和漏洞与DoS攻击混为一谈的方式。)

相关问题