official docs说明了静态文件serve
视图:
......这种观点非常低效且可能不安全
此警告是否仅适用于此特定视图,或者是否存在通过Django提供静态文件的概念中固有的安全问题?这些是什么?假设我已经对我的应用程序进行了基准测试并且性能可以接受,那么我还应该注意其他任何问题吗?
答案 0 :(得分:9)
通过django提供静态文件意味着您需要通过Python代码来执行您的网络服务器显着更高效的操作。
鉴于服务静态文件在性能方面是灾难性的,没有人会在生产中使用它。
因此,没有人关心在Django中提供静态文件的安全性
因此,这种观点可能可能不安全。
最终,它与开发服务器的理由相同。你不是假设在生产中使用它而不是一个人致力于使其安全。它对开发来说很实用。
此外,低效的东西会让你暴露于DoS攻击。是的,这是不安全的。
为什么要通过Django提供静态文件?是否可以控制对这些文件的访问?
如果是,您应该使用X-Accel-Redirect
(Nginx)或X-Sendfile
(Apache)标头。
但不要自己动手,请使用:https://github.com/johnsensible/django-sendfile