防止滥用:Firebase 的云功能

Posted

技术标签:

【中文标题】防止滥用:Firebase 的云功能【英文标题】:Preventing Abuse: Cloud Functions for Firebase 【发布时间】:2018-03-02 05:07:06 【问题描述】:

阻止攻击者反复触发云函数、导致巨额账单或导致项目达到配额限制的最佳方法是什么?

一些想法:

尽可能使用RTDB 或Cloud Storage 触发器,因为对这些触发器的写入受这些产品的security rules 保护 将函数放在Cloudflare 之类的服务后面 设置billing alerts,以便在每月账单异常大时发送通知

【问题讨论】:

这是一个广泛的讨论型问题,没有针对所有类型的函数的正确答案。实际上,今天在 Firebase Slack 中对此进行了详细讨论,这是解决此类问题的更合适的地方。 firebase.community 您是否设法将 Firebase 功能置于 Cloudflare 之后?谢谢! 【参考方案1】:

查看我的答案here。

我的回答中的项目的简短细分:

    限制请求类型 如果可以,进行身份验证 检查来源 在两者之间使用负载平衡器 使用类似Cloudflare Page Rules

希望对你有帮助:)

【讨论】:

是否可以限制从特定 IP 发出的请求数?我担心的是,即使我们对用户进行了身份验证,任何人都可以无限触发 GET 请求,这不会成为计费方面的问题吗? @Ayyappa 据我所知,不直接使用 Firebase / Cloud Functions。但是,如果这对您来说真的很重要,您可以做两件事。 1) 建立一个数据库来记录请求 IP 并检查数据库中的每个请求。 2) 使用 Cloudflare 页面规则之类的东西来应用 DNS 级别限制/控制 API 访问等。这些都不是理想的,但我想这部分是对无服务器基础架构的权衡。 (直到有人制作出原生/集成良好的解决方案,这当然是) 谢谢。 Cloudflare 是我需要探索的 :)

以上是关于防止滥用:Firebase 的云功能的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firebase 的云功能中添加版本

Firebase 的云功能:“错误:无法处理请求”

Firebase 的云功能 - 即使我正在为 firebase-admin 功能发出出站 http 请求,也会出现网络错误

Firebase 的云功能 - 获取当前用户 ID [重复]

Uncaught FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - 在 vue.js 中调用 Fireba

如何从 Firebase Cloud 功能中提取已部署的云功能 [重复]