如何通过保护只有经过身份验证的用户才能看到的 url 来使文件私有

信息安全 验证 访问控制 Python 文件访问 django
2021-08-29 22:02:53

我想知道是否有一种方法可以保护未经身份验证的图像或文件被隐藏。

假设我的网站中有一张图片,只有在该用户经过身份验证后才能看到。但问题是我可以复制网址或在新选项卡中打开图像。

http://siteis.com/media/uploaded_files/1421499811_82_Chrysanthemum.jpg

再说一次,即使我没有经过身份验证,我也可以通过转到该 url 来查看该特定图像。所以,我的问题是或我的问题是,我如何保护文件,以便只有经过身份验证的用户才能看到。我希望我很清楚,如果没有,请询​​问。如果您能帮助我,我将不胜感激。如果可能的话,以 pythonic/django 的方式。

1个回答

一种解决方案是禁止访问存储敏感文件的文件夹,这样就无法直接访问它们。例如,将这些文件放在http://siteis.com/secured_uploaded_files/下并在其中放置一个 .htaccess 文件(对于 apache)以防止访问。您还可以将文件放在 Web 服务器的文档根目录之外。

第二步是为以下行为编写代码:

网址:http : //siteis.com/getfile?id= {long_random_identifier}

当访问上述 url 时,服务器会检查用户是否经过身份验证并被授权访问由给定标识符标识的资源。如果检查成功,请使用服务器端代码从其位置读取文件并将其流式传输到您的响应中。