通过Django提供静态文件的安全性问题?

时间:2013-03-21 15:50:12

标签: django security webserver

official docs说明了静态文件serve视图:

  

......这种观点非常低效且可能不安全

此警告是否仅适用于此特定视图,或者是否存在通过Django提供静态文件的概念中固有的安全问题?这些是什么?假设我已经对我的应用程序进行了基准测试并且性能可以接受,那么我还应该注意其他任何问题吗?

1 个答案:

答案 0 :(得分:9)

它不安全,因为它不必是安全的

通过django提供静态文件意味着您需要通过Python代码来执行您的网络服务器显着更高效的操作。

鉴于服务静态文件在性能方面是灾难性的,没有人会在生产中使用它
因此,没有人关心在Django中提供静态文件的安全性 因此,这种观点可能可能不安全


最终,它与开发服务器的理由相同。你不是假设在生产中使用它而不是一个人致力于使其安全。它对开发来说很实用。

此外,低效的东西会让你暴露于DoS攻击。是的,这是不安全的。

但你不应该使用它。

为什么要通过Django提供静态文件?是否可以控制对这些文件的访问?

如果是,您应该使用X-Accel-Redirect(Nginx)或X-Sendfile(Apache)标头。

但不要自己动手,请使用:https://github.com/johnsensible/django-sendfile