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

问题描述 投票:0回答:1

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

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

django security django-staticfiles static-files
1个回答
30
投票

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

--insecure

使用

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

正如你所看到的,他们说“效率极低”和“可能不安全”。 他们没有说“绝对不安全”或“不安全”。 我认为他们暗示的是他们还没有对

staticfiles
应用程序及其与 Django 其余部分的交互进行彻底的安全分析。

对我来说,“效率极低”的部分应该足以阻止您提供静态内容。做得更好很容易......从

collectstatic
命令开始。


更多的搜索让我找到了这个 Google 网上论坛帖子,以回应有人询问为什么

--insecure
不安全。

来自:马尔科姆·特雷丁尼克

除非经过设计和审核,否则任何事物都不能被认为是安全的 安全。对于静态文件服务器,我们两者都没有做过。可能不会 存在安全漏洞,但不应被视为安全 因为这不是设计目标。

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

...支持我的解释。

© www.soinside.com 2019 - 2024. All rights reserved.