【问题标题】:Firebase browser key API restrictionsFirebase 浏览器密钥 API 限制
【发布时间】:2019-06-28 17:58:53
【问题描述】:

创建新项目时,Firebase 会在 GCP API credentials 中自动生成浏览器 API 密钥。这与在 Firebase Web 客户端 SDK 中设置且公开可用的 API 密钥相同。

默认情况下,密钥没有任何限制,因此为该项目启用的每个 API 都容易被盗用配额。令人惊讶的是,我没有在 Firebase 文档中找到有关保护此密钥的信息。

所以我采取了两个额外的步骤来保护密钥:

  1. 添加了 HTTP 引荐来源网址限制以仅允许来自我的域的请求。
  2. 在允许的 API 列表中添加了 Identity Toolkit API。通过实验,我发现 Firebase Auth 和 Firestore 可以正常工作。
  3. 添加了 令牌服务 API。这是刷新令牌工作和保持身份验证所必需的。

我的问题主要与第 2-3 点有关。 Firebase 的各种组件需要启用哪些 API 才能在网络上运行?

【问题讨论】:

  • 我想知道他们是否在后台神奇地做了自己的“限制”?您是否能够使用公共浏览器密钥来调用其他 API,例如谷歌地图地理编码?
  • @ahong 不,他们没有,是的,我能够使用公共浏览器密钥来调用其他 API。

标签: firebase firebase-authentication google-cloud-firestore


【解决方案1】:

我也启用了这两个 API,但我使用 Metrics Explorer 根据实际流量查看各种 Firebase 创建的密钥一直在使用什么。

在 GCP 中,

  • 转到监控 -> 指标资源管理器
  • 点击图表上方时间范围内的6W
  • 资源类型,开始输入consumed_api并选择它
  • 指标,选择请求计数
  • Group By,输入credential_id,选择它,然后输入service,然后选择它
  • 聚合器,选择sum

现在,图表的图例应该列出所有凭据 ID 以及他们在过去 6 周内使用的服务。您应该能够从服务中找出 API。

如果结果太嘈杂,您可以使用过滤器按credential_id 过滤。

【讨论】:

    【解决方案2】:

    默认情况下key没有限制,所以容易出现配额 窃取为该项目启用的每个 API。

    这确实是可能的,我能够制作 e。 G。使用自动生成的 Firebase API 密钥调用 Google Maps API。

    这种预先配置的行为肯定是出乎意料的,我现在正在按照原始问题中描述的额外步骤尝试限制。

    【讨论】:

      猜你喜欢
      • 2019-01-19
      • 2021-06-28
      • 2013-07-16
      • 1970-01-01
      • 2013-12-23
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      相关资源
      最近更新 更多