【问题标题】:Why is serving static files insecure为什么提供静态文件不安全
【发布时间】:2015-09-14 20:00:06
【问题描述】:

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

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

【问题讨论】:

  • 我不认为这是不安全的。真正的问题是效率低下。
  • 那么使用--insecure 参数强制使用debug = False 提供静态文件有点误导
  • 直接是runserver的意思吗?
  • @cdvv7788 是的。我知道这不是用于生产,但仍然......
  • docs.djangoproject.com/en/1.8/ref/django-admin/… 他们不会费心为其添加安全性或性能,因此不应依赖它。

标签: django security django-staticfiles static-files


【解决方案1】:

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

--insecure

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

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

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


为了回应有人问为什么--insecure 不安全,我进行了更多搜索。

发件人:马尔科姆·特雷丁尼克

任何东西都不能被认为是安全的,除非它经过设计和审核 安全。我们还没有使用静态文件服务器。它可能不会 存在安全漏洞,但不应被视为安全 因为那不是设计目标。

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

...支持我的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-28
    • 2012-06-15
    • 2019-06-14
    • 2021-12-31
    • 2020-11-11
    • 1970-01-01
    相关资源
    最近更新 更多