gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 13:24:15 24 4
gpt4 key购买 nike

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

c7d43358-7532-4812-b828-b10b26694f0f.pdf

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

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

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

还有哪些解决方案?

最佳答案

执行怎么样user==owner在 View 级别,阻止对文件的访问,将它们存储为 FileFields,并且仅在满足该条件时才检索文件。

例如您可以使用 @login_required decorator仅在登录时才允许访问。这可以使用 request.user 细化。以检查文件的所有者。 Django documentation 的用户身份验证部分在这里可能会有所帮助。

正如您提到的,另一个选项是通过 S3 本身,在 Django 中生成 url,其中有一个查询字符串,允许经过身份验证的用户访问下载特定 s3 对象的时间限制。有关详细信息,请访问 s3 documentation .之前也有人问过类似的问题here在 SO 上。

关于django - 限制访问 Django/Nginx 中的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9810610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com