限制Firebase API密钥

31

我一直在尝试使用Firebase,并阅读了文档(和其他SO问题),但我仍然对一些API密钥感到困惑。我正在使用Firebase进行分析、Crashlytics和性能方面的操作。但同时也将其链接到Google Play和AdMob。

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

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

我尝试阅读文档,找到描述这些密钥如何使用的地方,但我没能找到。从Firebase应用程序中查看,似乎将Android Key用作Web API Key,而将Server Key用作Cloud Message Legacy Server Key(虽然我不使用Cloud Messaging)。我不确定Firebase如何使用Browser Key

我要做的是尽可能限制这些密钥,以防止任何恶意使用。

我添加了以下API限制:

  1. Android密钥
    • Firebase服务API
  2. 服务器密钥
    • Firebase云消息传递API
  3. 浏览器密钥
    • Firebase服务API

我不能完全确定这些限制是否符合我的使用要求,但至少在Android Key和Server Key方面它们是有效的,至少据我所知。然而,Browser Key的限制似乎不起作用,因为每次重新部署应用程序时Firebase都会创建一个新的Browser Key。

总之,我的问题是,我可以看到Firebase正在为我自动创建API密钥,但我找不到任何关于如何使用这些密钥来使用Firebase基本功能的文档。我也不确定如何限制这些密钥,特别是Browser Key。


6
我想知道同样的事情。Firebase似乎会自动创建这些密钥,而且如果我更改它们,它们会重新被创建。我不喜欢这些密钥似乎超出了我的控制范围。 - devlop
你最终找到了问题的答案吗? - ahong
我还注意到一些 API 密钥出现在 google-services.json 文件中。我不知道该文件是否在编译后的应用程序中,但如果是的话,这将是一个值得关注的问题。 - josue.0
请问您有找到答案了吗? - josue.0
@josue.0 在这里的注释之外,不要加任何东西。 - Spark323
显示剩余2条评论
2个回答

6

应用程序限制可以通过以下方式进行限制:HTTP引用者、IP地址、Android应用程序和iOS应用程序。这些似乎是唯一有效的方法。

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

我尝试将API调用限制为仅与Firebase或身份验证相关的调用。但在做出这些更改后,使用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"
      }
    ]
  }
}

非常奇怪,当我限制自动生成的Firebase API密钥时,不幸的是我遇到了类似的问题。我找不到任何关于这个问题的文档或答案。 - Zafer

3
Android Key可以通过提供包名和SHA1指纹来锁定为“Android应用程序”。这似乎会限制密钥的使用仅限于签名的Android代码?我启用了此限制,没有任何不良影响。

浏览器密钥应该做什么? - undefined

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