【发布时间】:2021-07-06 17:52:44
【问题描述】:
Firebase docs 建议不应限制 firebase 自动创建的密钥,并且不像其他 sercet 密钥可以愉快地出现在网站的源代码中:
与通常使用 API 密钥的方式不同,Firebase 服务的 API 密钥不用于控制对后端资源的访问;这只能通过 Firebase 安全规则来完成。通常,您需要严格保护 API 密钥(例如,通过使用保管库服务或将密钥设置为环境变量);但是,Firebase 服务的 API 密钥可以包含在代码或签入的配置文件中。
默认情况下,Firebase 自动创建的 API 密钥没有任何限制。
使用 Firebase 安全规则保护您的数据库和云存储数据,而不是限制和/或隐藏您的 API 密钥。
但是,当我们在源代码中包含我们的 firebase 密钥时,恶意攻击者似乎可以使用它来调用付费的 Google 服务,例如 Custom Search APIs,它的查询费用为 5/5000 美元,从而耗尽了 Google 控制台一个可怜的毫无戒心的受害者的平衡。
此外,对 Firebase 密钥添加限制似乎不起作用 - 要么阻止密钥工作,要么触发创建新的自动生成密钥(请参阅here、here、here)
那么我们是否应该以某种方式限制 api-key, 从网站的源代码中隐藏密钥 还是别的什么?
【问题讨论】:
标签: firebase security google-cloud-platform