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