这是我的情况:1)我正在开发使用Firebase存储的iOS应用。 2)我的应用程序具有基于Facebook登录的自定义轻量级身份验证机制。 3)所有通过身份验证的用户都可以访问Firebase存储中的任何数据。 4)其他人不能。
我要做的就是确保只有我的应用可以访问存储。如果我要构建自己的服务器,则只需使用应用程序中预先设置的一些API密钥评估每个传入的请求,即可成功解析来自我的应用程序的所有请求。如果有人要使用我的API,他应该知道API密钥。
我知道,这不是WEB-APP的解决方案,因为每个人都可以看到源代码(和API密钥),但这对于没有这种可能性的移动应用程序是可以的。
所以我的问题是:我应该为它打扰还是Firebase已经基于配置文件中的APIkey进行了这项工作。如果我应该的话,您会推荐什么?
也许我错过了firebase文档中的某些内容,但是我发现他们不清楚这个特定问题。
答案 0 :(得分:4)
在正常情况下,是的,所有其他人都无法访问存储。但是,没有什么是“不可破解的”。
人们可以对您的应用进行逆向工程,并获得证书,api密钥等。因此,最好的方法是应用另一层保护,例如this (for iOS)和this (For Android)(仅供参考) )。仍然可以入侵,但需要更多的努力,通常人们会放弃对其进行攻击。
我假设您使用的是标准的Firebase方式,该方式需要您下载配置文件。查看放置在项目中的配置文件,它使人们可以在使用api键的情况下访问firebase功能(在这种情况下为firebase存储)。您可以应用双向认证(通过Firebase身份验证或Facebook身份验证)来认证真实用户。
希望它能给您一些想法,加油!
答案 1 :(得分:0)
首先,有人很可能会反编译您的移动应用程序并获取其代码,即使它与您编写的内容不完全相同。您的APK或IPA中没有秘密。
在Cloud Storage中保护文件的唯一机会是使用Firebase身份验证以及为存储桶定义的security rules。如果您使用某种形式的自定义身份验证,则必须在此之上使用Firebase Auth,并对每个用户使用generate a JWT。