限制访问Django / Nginx中的静态文件

发布时间:2019-06-11 发布网站:脚本之家
脚本之家收集整理的这篇文章主要介绍了限制访问Django / Nginx中的静态文件脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在构建一个允许用户生成文档然后下载它们的系统.文档是PDF(并不是为了这个问题而重要),当它们生成时,我将它们存储在我的本地文件系统上,运行web服务器时使用的是uuid文件名

c7d43358-7532-4812-b828-b10b26694f0f.pdf

但我知道“通过默默无闻的安全”不是正确的解决方案……

我希望尽可能限制每个帐户对文件的访问.我认为我可以做的一件事是将它们上传到S3并提供一个签名的URL,但我想尽可能避免这种情况.

我正在使用Nginx / Django / Gunicorn / EC2 / S3

还有什么其他解决方案?

如何在视图级别强制执行user == owner,阻止访问文件,将它们存储为FileFields,以及仅在满足条件时检索文件.

例如您可以在视图上使用@login_required decorator以仅在登录时允许访问.可以使用request.user来检查该文件的所有者. Django documentation的用户身份验证部分可能对此有所帮助.

正如你所提到的另一个选择是通过S3本身,在Django中生成url,它有一个查询字符串,允许经过身份验证的用户访问下载具有时间限制的特定s3对象.有关详细信息可以在s3 documentation找到.类似的问题已经在here之前提出过SO.

总结

以上是脚本之家为你收集整理的限制访问Django / Nginx中的静态文件全部内容,希望文章能够帮你解决限制访问Django / Nginx中的静态文件所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:76874919,请注明来意。
标签:djangodjango