这可能是一个愚蠢的问题,并且有一个明显的答案,但我正在测试 404 和 500 错误处理程序,这意味着我必须将 debug 切换为 False。我进入 Django 管理页面,注意到没有提供静态文件。
我知道它们应该通过 Apache 路由,因为通过 Django 提供静态文件是不安全的。但是,我不太明白为什么直接通过Django提供静态文件会有安全风险?
以下是 Django 1.8 文档关于该主题的内容:
--insecure
使用
选项强制使用静态文件应用程序提供静态文件,即使--insecure
设置为DEBUG
也是如此。通过使用它,您承认它的效率极低并且可能不安全。这仅适用于本地开发,切勿在生产中使用,并且仅当False
应用程序位于项目的staticfiles
设置中时才可用。INSTALLED_APPS
正如你所看到的,他们说“效率极低”和“可能不安全”。 他们没有说“绝对不安全”或“不安全”。 我认为他们暗示的是他们还没有对
staticfiles
应用程序及其与 Django 其余部分的交互进行彻底的安全分析。
对我来说,“效率极低”的部分应该足以阻止您提供静态内容。做得更好很容易......从
collectstatic
命令开始。
更多的搜索让我找到了这个 Google 网上论坛帖子,以回应有人询问为什么
--insecure
不安全。
来自:马尔科姆·特雷丁尼克
除非经过设计和审核,否则任何事物都不能被认为是安全的 安全。对于静态文件服务器,我们两者都没有做过。可能不会 存在安全漏洞,但不应被视为安全 因为这不是设计目标。
例如,安全文件服务器需要检查资源 分配问题,因此服务非常大的文件不构成 拒绝服务攻击。这需要大量额外的代码 管道管理不值得投入到只是 出于发展目的。
...支持我的解释。