限制访问Firebase存储,只允许我的应用程序进行访问

5
这是我的情景:1)我正在开发一个使用 Firebase 存储的 iOS 应用程序。2)我的应用程序具有基于 Facebook 登录的自定义轻型身份验证机制。3)所有经过身份验证的用户都可以访问 Firebase 存储中的任何数据。4)其他人则不能访问。
我想要的只是确保只有我的应用程序可以访问存储。如果我建立自己的服务器,我会使用一些 API 密钥来评估每个传入请求,这些密钥预先设置在应用程序中,因此来自我的应用程序的所有请求都会成功解决。如果其他人想要使用我的 API,则应该知道 API 密钥。
我明白了,这对于 WEB-APP 来说不是一个解决方案,因为每个人都可以看到源代码(和 API 密钥),但对于移动应用程序来说,这是可以的,因为没有这样的可能性。
所以我的问题是:我需要担心这个问题吗?Firebase 是否已经根据配置文件中的 APIkey 完成了这项工作?如果需要,你会推荐什么?
也许我在 Firebase 的文档中错过了什么,但我认为它们对这个特定问题不太清楚。

请明确您想要问的实际问题。 - Caleb
3个回答

6
在正常情况下,是的,其他人无法访问存储。但是,没有什么是“不可被黑客攻破”的。
以下是一些保护措施可以应用在你的应用程序上,如iOSAndroid(供您参考)。这样做虽然不是绝对安全,但会增加攻击者的攻击难度,从而降低攻击概率。
我假设您正在使用 Firebase 的标准方式,需要下载配置文件。如果他人获得该文件,则可以使用其中的 API 密钥访问 Firebase 功能(此处为 Firebase 存储)。因此,您可以使用 Firebase Auth 或 Facebook Auth 提供的两步验证验证真实用户。希望这些思路能对您有所帮助,祝好!

5

由于新功能 Firebase App Check 的支持,现在可以限制仅允许来自已注册在Firebase项目中的iOS、Android和Web应用程序的调用。

通常您会想将其与基于用户认证的安全规则相结合,例如Firebase文档中关于常见访问控制模式所示的那些规则。


2
首先,即使您没有编写的代码,他人很有可能反编译您的移动应用程序并获取其代码。您的 APK 或 IPA 中没有任何机密内容。
在云存储中保护文件的唯一方法是使用 Firebase 身份验证,并针对您的存储桶定义安全规则。如果您正在使用某种自定义身份验证形式,则必须在其上使用 Firebase Auth,并为每个用户生成 JWT

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接