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

前端之家收集整理的这篇文章主要介绍了限制访问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.

猜你在找的Nginx相关文章