加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

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

发布时间:2020-12-13 21:24:17 所属栏目:Nginx 来源:网络整理
导读:我正在构建一个允许用户生成文档然后下载它们的系统.文档是PDF(并不是为了这个问题而重要),当它们生成时,我将它们存储在我的本地文件系统上,运行web服务器时使用的是uuid文件名 c7d43358-7532-4812-b828-b10b26694f0f.pdf 但我知道“通过默默无闻的安全”不

我正在构建一个允许用户生成文档然后下载它们的系统.文档是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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读