如何处理烧瓶的静态/媒体文件权限?

时间:2015-01-22 08:20:32

标签: python nginx flask

我创建了一个应用程序,其中媒体文件(由用户上传的文件,而不是css / js)由子域上的另一台服务器静态提供,如:media.example.com/path/to/image.jpg。如何限制对图像的访问权限,以便只有登录并拥有权限的某些人才能看到它们?

请注意,显示图像的页面上的持久性有效,但我想进一步限制对图像本身的访问,因此无法共享图像网址。

由于

2 个答案:

答案 0 :(得分:2)

通过Flask而非您的网络服务器提供您的图像,将其视为具有权限的任何其他网址。显然,Nginx是提供静态文件的更好选择,但它不会与Flask集成。

答案 1 :(得分:1)

您似乎正在寻求一种解决方案,其中网络服务器(nginx)知道只有应用程序(瓶子)知道的事情:请求的浏览器是否已验证其会话。

也许有可能设计出一些狡猾的解决方案,以便应用程序留下足够的线索来让nginx进行检查,但这种情况并不常见,如果你提出这个问题,可能太难以完美了。一个可靠的解决方案。

例如,应用程序可能会写入htaccess文件并通过浏览器实现auth_basic_user_file。但我不推荐它。

或者您可以通过将静态文件放入随机创建的子目录来尝试security by obscurity。例如/static/12340A9BN34/secret_img.jpg。但是,再次,这里没有真正的安全;如果你有路径:你有文件。

聪明的人可能会发布一个很好的答案,告诉你如何去做,但我怀疑你有办法(通过应用程序级别的知识)(通常)限制在网络服务器级别的访问。