在我的应用程序中存储敏感的API密钥

问题描述:

标题并不真正表明我的意思: 我正在寻找一种安全的方式来保存用户数据(一个游戏点系统 - 在任何情况下用户都不应该有能力改变他的点数)。我偶然发现了Firebase,这看起来很不错,很容易。在我的应用程序中存储敏感的API密钥

但是: 如果我给应用程序直接写入用户新点数据库的权限,那么这是非常不安全的,对吧?我的意思是,有人可以反编译应用程序并从Firebase获取密钥,以便任何人都可以写入数据库,或者我错了吗?

另外,将这些“新点”保存到Firebase实时数据库中的最佳方法是什么?

编辑:我已经在保护我的应用程序,但这只是让用户更难获得密钥,我想。

+0

可能的重复[如何安全Firebase本地数据库在Android?](https://stackoverflow.com/questions/37562797/how-secure-is-firebase-local-database-in-android) – jaffar

+0

@jaffar,那不是重点,请阅读整个问题。 – Bostrot

您的应用中的Firebase配置数据不是安全问题。这仅仅是您的应用需要在服务器上找到其Firebase项目的信息。见Is it safe to expose Firebase apiKey to the public?

要正确保护您在服务器上评估的数据,请编写security rules。通过这些,您可以确保用户只能读取您想要的数据,并且只有授权用户才能进行有效的更改。

在安全规则变得比可行更复杂的情况下,您可以考虑通过Cloud Functions for Firebase代理读取/写入。借助云端功能,您的代码可以在Google的服务器上运行,因此您不必担心用户为了恶意目的修改代码。

它的安全,如果你使用云代码。这样一切都通过服务器来保存,用户无法更改,除非他们有权访问您的云代码。