我正在构建一个允许用户生成文档然后下载它们的系统.文档是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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。