Firebase 浏览器密钥 API 限制
Posted
技术标签:
【中文标题】Firebase 浏览器密钥 API 限制【英文标题】:Firebase browser key API restrictions 【发布时间】:2019-06-28 17:58:53 【问题描述】:创建新项目时,Firebase 会在 GCP API credentials 中自动生成浏览器 API 密钥。这与在 Firebase Web 客户端 SDK 中设置且公开可用的 API 密钥相同。
默认情况下,密钥没有任何限制,因此为该项目启用的每个 API 都容易被盗用配额。令人惊讶的是,我没有在 Firebase 文档中找到有关保护此密钥的信息。
所以我采取了两个额外的步骤来保护密钥:
-
添加了 HTTP 引荐来源网址限制以仅允许来自我的域的请求。
在允许的 API 列表中添加了 Identity Toolkit API。通过实验,我发现 Firebase Auth 和 Firestore 可以正常工作。
添加了 令牌服务 API。这是刷新令牌工作和保持身份验证所必需的。
我的问题主要与第 2-3 点有关。 Firebase 的各种组件需要启用哪些 API 才能在网络上运行?
【问题讨论】:
我想知道他们是否在后台神奇地做了自己的“限制”?您是否能够使用公共浏览器密钥来调用其他 API,例如谷歌地图地理编码? @ahong 不,他们没有,是的,我能够使用公共浏览器密钥来调用其他 API。 【参考方案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。
这种预先配置的行为肯定是出乎意料的,我现在正在按照原始问题中描述的额外步骤尝试限制。
【讨论】:
以上是关于Firebase 浏览器密钥 API 限制的主要内容,如果未能解决你的问题,请参考以下文章
API 密钥 浏览器 API 密钥与此 API 一起使用时不能有引用者限制
API 密钥 浏览器 API 密钥与此 API 一起使用时不能有引用者限制