【问题标题】:How to make firebase storage only available to users of the app如何使 Firebase 存储仅对应用用户可用
【发布时间】:2017-03-26 08:09:57
【问题描述】:

我将图片保存到我的 Firebase 存储中,我只希望使用该应用的用户能够访问它们。我不想强迫我的用户登录只是为了使用应用程序,所以这不是一个选项。

【问题讨论】:

  • 您只需为所有用户创建一个用户和密码,并将其硬编码到您的项目中。

标签: android firebase firebase-storage


【解决方案1】:

由于 Firebase 后端服务托管在云端,因此任何人都可以访问它们。没有办法将他们的访问权限限制为只允许使用您编写的代码的人。任何开发人员都可以下载 SDK,重写您的代码并使用它来访问相同的后端服务。

这就是您通过基于用户的安全性来保护对 Firebase 数据(无论是数据库中的结构化数据还是存储中的文件)的访问的原因。让您的用户登录应用程序意味着您可以识别正在访问数据。对用户进行身份验证后,您可以使用 Firebase 的安全规则(针对 databasestorage)来确保他们只能访问获得授权的数据。他们可能仍在使用其他代码,但您至少会知道他们是谁,并确保他们只能以您授权的方式访问数据。

您可以通过使用anonymous authentication 获得两全其美(要求用户进行身份验证,而不要求他们登录)。请记住,任何开发人员都可以下载 Firebase SDK 并匿名验证用户身份。

有关该主题的较早讨论(针对数据库,但同样适用于存储),请参阅How to prevent other access to my firebase

【讨论】:

  • firebase 存储不受授权保护。任何文件都有公开的可下载网址
  • 只有在调用 API 时才会生成无法猜测的只读下载 URL。通过 SDK 的访问受到上述安全规则的保护。如果您有关于其中任何一个的其他 cmets,我建议您提出一个新问题。
【解决方案2】:

基本上你想改变你的存储规则。在 Firebase 控制台和存储中,框架顶部有两个选项卡。一个说文件,一个说规则。如果单击“规则”选项卡,您将看到定义谁可以读写您的存储的代码视图。您将需要按照下面的链接为您的存储设置正确的规则。但是根据你想要的,你所要做的就是将读写代码设置为:

 allow read: if request.auth != null;

查看此链接:https://firebase.google.com/docs/storage/security/user-security

【讨论】:

    猜你喜欢
    • 2019-07-19
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多