rest - https ://URLs 的 Firebase 存储 REST url 访问控制

标签 rest ionic-framework firebase hybrid-mobile-app firebase-storage

我已经研究这个问题好几个小时了,我担心我已经知道答案了,但我希望那里的天才们可能知道一些我还没有发现的东西。 (手指交叉)

设置
我正在使用 Ionic 1 和 Firebase 构建聊天应用程序。这意味着我可以通过 REST API 与 Firebase 进行交互。这是一种私有(private)聊天体验,因此所有交流的数据都应保持安全。
我允许用户上传图片,我决定利用 Firebase 的新存储功能。数字文件更适合那里。
我可以使用存储 API 成功上传图像并检索它们......耶(感谢 Firebase)

问题
鉴于我在 REST 世界工作,我通过 URL (通过对文件 ref 使用 getDownloadURL)访问图像。生成的 URL 是公开的(但不可猜测)。这个 URL 的公共(public)性质是我目前的垮台:(
我知道 URL 被设计成不可猜测的,如果所有其他方法都失败了,我可以进入控制台撤销 URL,我希望有一些方法可以使用混淆以外的方法来保护用户内容。

询问或希望

  • 有没有办法创建对时间敏感的 URL(可能使用安全规则)
  • 有没有一种方法可以创建条件 URL,使其在一次“下载”后过期
  • 有没有办法将内容下载为类似于数据库快照的 base64
  • 有没有什么我没有想到的可以解决这个问题

当前的想法

  • 硬着头皮相信 URL 是安全的
  • 将图像作为 base64 字符串存储在数据库本身中(我真的想避免这种情况,因为它通常不受欢迎)

提前感谢您的建议和指导

最佳答案

此处为 Firebase Storage JS 开发人员。

由于您提到使用“文件引用上的 getDownloadURL”,我假设您使用的是 Firebase Storage JS 库。

  • Is there a way to create time sensitive URLs (maybe using security rules)
  • Is there a way to create conditional URLs such that it expires after one "download"

很遗憾,我们现在不提供这些功能。

Is there a way to download the content as base64 similar to db snapshots

目前,您只能通过不可猜测的下载 URL 下载内容。

Is there something I am not thinking of that can solve this problem

看来您对我们图书馆目前提供的内容非常了解。我认为目前最好的选择是使用无法猜测的下载 URL。唯一能够获得文件下载 URL 的用户是能够首先下载实际文件的用户。

话虽如此:我同意你的看法,如果你在如何处理文件下载的授权方面有更多的灵 active (只允许通过 SDK 访问经过身份验证的用户,对不可猜测的 URL 进行更多/编程控制),那就太好了、一次性下载 URL 等)。在寻找改进产品的方法时,我们一定会考虑这一点,感谢您的反馈。

关于rest - https ://URLs 的 Firebase 存储 REST url 访问控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39931408/

相关文章:

android - 加载两个依赖数据集

javascript - 非规范化 Firebase 数据以进行标签搜索

php - 如何防止同时执行多个 REST API?

客户端(和服务?)的 REST 接口(interface)

ionic-framework - 在 ionic 2 中创建连接时出现 typeorm 问题

javascript - 无法单击 ionic 搜索图标来执行搜索

android - Firebase 云消息未收到通知

java - 使用 javax.ws 和 angular 打开 pdf 文件

java - 在 POST 映射中使用 jackson 而不是 DTO?

javascript - 使用 Ionic 进行本地存储