当前位置: 首页 > 知识库问答 >
问题:

限制Firebase API密钥

柳灿
2023-03-14

我一直在玩弄Firebase,在阅读了留档(和其他SO问题)后,我仍然对一些API密钥感到困惑。我正在使用Firebase进行分析、碰撞和性能测试。还可以将其链接到Google Play和AdMob。

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

  1. 浏览器键(由谷歌服务自动创建)
  2. Android钥匙(由谷歌服务自动创建)
  3. 服务器密钥(由谷歌服务自动创建)

我试图通过阅读文档来找到这些密钥是如何使用的,但我没能找到。环顾Firebase应用程序,它看起来像是Android键被用作Web API键,而服务器键被用作云消息遗留服务器键(尽管我不使用云消息)。我不确定Firebase是如何使用浏览器键的。

我想做的是尽可能限制这些密钥,以防止恶意使用它们。

我添加了以下API限制

  • Android密钥
    • Firebase服务API
    • Firebase云消息API
    • Firebase服务API

    我不完全确定这些限制是否适用于我使用它们的目的,但至少就我所知,它适用于Android KeyServer Key。但是,当我重新部署我的应用程序时,Firebase正在创建一个新的浏览器密钥,因此Browser Key限制似乎不起作用。

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


共有2个答案

百里意智
2023-03-14

通过提供软件包名称和SHA1指纹,可以将Android密钥锁定为“Android应用程序”。

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

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

惠洛华
2023-03-14

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

我发现最好不要限制自动生成的Firebase API密钥上的API调用。我尝试过Firebase Web API Key的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"
      }
    ]
  }
}
 类似资料:
  • 我正在尝试使用javax.crypto.ciper加密/解密数据,其中我将转换指定为aes/ecb/pkcs5padding。 在我的本地机器中,jcesecurity.isrestricted()返回FALSE,但是当它在服务器上运行时,相同的方法返回true。由于服务器上的这种情况,系统不会为密码分配正确的权限。 不确定,JceSecurity restriction确切设置在哪里。感谢你的帮

  • 使用next export,我们创建了个静态 HTML 应用。构建时将会运行页面里生命周期getInitialProps 函数。 req和res只在服务端可用,不能通过getInitialProps。 所以你不能预构建 HTML 文件时动态渲染 HTML 页面。如果你想动态渲染可以运行next start或其他自定义服务端 API。

  • 大家好,我正在尝试匹配以下正则表达式: 最少字符数:8 最大字符数:22 最小大写字母:1 最小小写字母:1 最小位数:2 允许使用特殊字符 第一个字符必须是字母 最大连续相同字符数:2 我已经设法完成了每一个条件,但连续的条件是: 遵循后正则表达式不超过2个相同的连续字符和a-Z和0-9,我发现不匹配精确字符的方法是: 但是我无法混合它们并获得完整的匹配结果。尝试在这里完成:https://re

  • 对“每个具体类映射一张表”(table per concrete-class)的映射策略而言,隐式多态的方式有一定的限制。而 <union-subclass> 映射的限制则没有那么严格。 下面表格中列出了在 Hibernte 中“每个具体类一张表”的策略和隐式多态的限制。 表 9.1. 继承映射特性(Features of inheritance mappings) 继承策略(Inheritanc

  • 本文向大家介绍密码哈希函数 Bcrypt的最大密码长度限制详解,包括了密码哈希函数 Bcrypt的最大密码长度限制详解的使用技巧和注意事项,需要的朋友参考一下 密码哈希函数 Bcrypt的最大密码长度限制 Bcrypt是一个很流行的密码哈希算法,是Niels Provos和DavidMazières基于Blowfish加密算法设计的密码哈希算法,于1999年在USENIX协会上提交。Bcrypt在

  • 问题内容: 我正在通过migrations.changeColumn函数在迁移中添加一个约束。 添加约束是可行的,但是由于您需要提供Possibly unhandled SequelizeDatabaseError: relation “myAttribute_unique_idx” already exists`。 (使用的数据库是postgres) 我也尝试过使用removeIndex 但是在