将私有 api 密钥存储在颤振中

时间:2021-07-07 21:06:29

标签: firebase flutter firebase-realtime-database google-cloud-functions

我正在使用 firebase 和我的后端 API 来获取我的应用程序的数据。

该 API 需要 GCP 密钥才能访问。此密钥每 90 天到期一次。因此,我无法将密钥存储在客户端/手机中。

需要一些我可以在哪里存储密钥的想法.. 我尝试了 Firebase 远程配置并且它可以工作,但 Firebase 文档说不应使用敏感数据。

创建返回密钥的后端服务将不安全,因为任何人都可以调用该服务,

需要一些建议。 Firestore/实时数据库是一个选项。该应用程序只会读取数据。但是,当数据更改(新密钥)时,应用程序应该获取最新的。

感谢您的建议

1 个答案:

答案 0 :(得分:0)

虽然在运行时通过远程配置或云数据库等机制向应用分发私有 API 密钥可能会降低其被拦截的风险,但不足以阻止有足够动机的恶意用户。这就是为什么 Remote Config 文档不建议使用它,这同样适用于其他分发机制(例如您提到的数据库)。

如果这是一个私有 API 密钥,则不应在客户端代码中使用它,句号。这真的是唯一的解决办法。当您在客户端代码中使用它时,恶意用户可能会访问它,然后滥用受私有 API 密钥保护的后端服务。

私有 API 密钥应保密,并且只能在受信任的环境中使用(例如您的开发机器、您控制的服务器或 Cloud Functions)。当您允许您的应用用户通过该私有环境进行调用(通过为他们定义您自己的 API)时,您必须自己保护该端点,以确保只有授权用户才能访问它们。

相关问题