【问题标题】:Accessing Firebase Storage images without .getDownloadUrl在不使用 .getDownloadUrl 的情况下访问 Firebase 存储映像
【发布时间】:2020-05-06 10:53:32
【问题描述】:

我真的需要能够通过创建URL 来动态访问我的 Firebase 存储中的图像。看起来像这样的东西:

https://firebasestorage.googleapis.com/v0/b/<bucket>.appspot.com/o/userImages%2F<userUID>2%2F<imageUID>?alt=media

我知道这是可能的,因为我设法在浏览器中加载了图像。但是,我担心的是安全性。

我需要设置规则 allow read: if true; 才能正常工作

如果有恶意的人想要查看用户的图片,他们是否能够看到我存储桶中的所有图片,还是需要猜测userUIDimageUID

【问题讨论】:

    标签: firebase firebase-storage firebase-security


    【解决方案1】:

    如果没有自定义代码,您的要求是不可能的。直接下载 URL 完全不受 Firebase 安全规则的影响。

    如果您想限制对任何类型的直接下载 URL 的访问,您将需要某种自定义后端服务,在交付内容之前检查最终用户的权限。这意味着您必须创建自己的端点来为存储中的文件内容提供服务。

    【讨论】:

    • 换句话说,任何人都可以来看我存储桶中的图像?
    • 任何拥有文件下载 URL 的人都可以访问其内容,直到您撤销与该 URL 关联的令牌。
    【解决方案2】:

    这些规则不适用于 URL。但是下载 URL 中有一个令牌,可以由您生成,也可以由存储桶生成,默认情况下,UUID 始终是唯一的。

    https://firebasestorage.googleapis.com/v0/b/[bucket].appspot.com/o/userImages%2F[userUID]2%2F[imageUID]?alt=media&token=[accessToken]

    【讨论】:

      猜你喜欢
      • 2014-08-31
      • 2016-12-25
      • 2021-02-16
      • 2017-10-01
      • 2019-05-29
      • 2021-04-06
      • 2020-04-02
      • 2018-07-18
      • 1970-01-01
      相关资源
      最近更新 更多