【问题标题】:Unrestricted Firebase key can be used for other paid Google APIs不受限制的 Firebase 密钥可用于其他付费 Google API
【发布时间】: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 密钥添加限制似乎不起作用 - 要么阻止密钥工作,要么触发创建新的自动生成密钥(请参阅hereherehere

那么我们是否应该以某种方式限制 api-key, 从网站的源代码中隐藏密钥 还是别的什么?

【问题讨论】:

    标签: firebase security google-cloud-platform


    【解决方案1】:

    我无法找到任何关于他使用自动生成的 API 密钥进行恶意攻击的信息,并且可以毫无问题地加以限制。您评论的大多数帖子都对如何使用限制选项解决问题做出了回应。此外,谷歌文档对recommend 做了一些 API 密钥限制。

    此外,您还可以使用 App check 来限制对 Firebase 项目中后端服务的访问。

    Here 还有一篇关于 Firebase 中 API 密钥安全性的文章。

    因此,在测试并浏览了一些页面之后,我认为根据他们访问的内容让其中一些不受限制而另一些受到限制是非常安全的,您应该没有任何问题。

    【讨论】:

      猜你喜欢
      • 2017-08-23
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2018-02-21
      • 2018-04-18
      相关资源
      最近更新 更多