限制Firebase API密钥

时间:2018-08-11 20:11:29

标签: android firebase google-developers-console

我一直在玩Firebase,在阅读了文档(以及其他SO问题)之后,我仍然对某些API密钥感到困惑。我正在使用Firebase进行分析,崩溃和性能分析。而且还可以将其链接到Google Play和AdMob。

当我第一次设置它时,在开发者控制台中创建了3个API密钥。

  1. 浏览器密钥(由Google Service自动创建)
  2. Android密钥(由Google Service自动创建)
  3. 服务器密钥(由Google Service自动创建)

我试图通读文档,以找到描述如何使用这些键的地方,但是我找不到它。通过环视Firebase应用程序,看起来Android Key被用作Web API Key,而Server Key被用作Cloud Message Legacy Server Key(尽管我不使用云消息传递)。我不确定Firebase如何使用Browser Key

我要尝试的是尽可能限制这些密钥,以防止对其进行任何恶意使用。

我添加了以下API限制

  1. Android密钥
    • Firebase Services API
  2. 服务器密钥
    • Firebase Cloud Messaging API
  3. 浏览器密钥
    • Firebase Services API

我不确定这些限制是否对我使用它们的目的正确,但是就我所知,它对Android KeyServer Key有效。但是,Browser Key限制似乎不起作用,因为当我重新部署应用程序时,Firebase正在创建新的Browser Key

总结一下我的问题,我可以看到Firebase正在为我自动创建API密钥,但是我找不到任何有关这些密钥如何用于我正在使用的Firebase基本功能的文档。我也不完全确定如何限制这些键,尤其是Browser Key

2 个答案:

答案 0 :(得分:0)

您可以通过以下方式限制应用程序限制:HTTP引荐来源网址,IP地址,Android应用程序,iOS应用程序。这些是唯一似乎有效的方法

我发现最好不要限制对自动生成的Firebase API密钥的API调用。我已经尝试过Firebase Web API密钥的API限制,但是更改破坏了其他组件。

我尝试将API调用限制为仅与Firebase或Authentication有关的调用。进行这些更改后,使用Firebase使用密码登录将停止工作,并且在Javascript控制台中显示以下错误消息:

https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key=THE 1NOW1RESTRICTED1API1KEY
{
  "error": {
    "code": 400,
    "message": "EMAIL_NOT_FOUND",
    "errors": [
      {
        "message": "EMAIL_NOT_FOUND",
        "domain": "global",
        "reason": "invalid"
      }
    ]
  }
}

答案 1 :(得分:0)

通过提供程序包名称和SHA1指纹,可以将Android Key锁定为“ Android Apps”。

这似乎会通过密钥来限制已签名的Android代码的使用?

我启用了此限制,没有任何不良副作用。