如何阻止第三方通过Firebase Auth REST API创建用户?
关于第三方滥用Firebase API Key创建匿名用户的解决方案
首先要明确一个关键事实:Firebase客户端配置里的API Key本身就是公开的,它的作用仅用于标识你的Firebase项目,而非作为安全凭证使用。所以第三方能从前端代码中获取到这个Key是完全正常的,而你设置的「来源网站限制」只能约束浏览器环境下的跨域请求,像Postman这类非浏览器工具本身不受同源策略限制,伪造请求来源(Referer)非常容易,因此这个限制无法阻止这类工具的请求。
要解决第三方随意创建匿名用户的问题,你可以通过以下几个核心配置实现:
- 启用Firebase App Check:这是最有效的防护手段。App Check会验证每一个请求是否来自你的合法应用(比如你的官网、官方APP),只有通过验证的请求才能调用Firebase Auth的API。
- 针对Web应用,你可以配置ReCAPTCHA v3/Enterprise作为验证提供者,配置完成后,你的前端应用会自动生成并携带验证令牌,Firebase后台会校验令牌合法性,第三方就算拿到API Key,没有合法的验证令牌也无法发起有效请求。
- 禁用不必要的匿名登录:如果你的业务场景根本不需要匿名登录功能,直接在Firebase控制台的「Authentication」→「登录方法」中关闭「匿名」登录选项,这样任何请求都无法创建匿名用户。
- 配合安全规则限制用户权限:虽然安全规则无法直接阻止匿名用户的创建,但可以限制匿名用户后续的操作权限,比如禁止匿名用户访问敏感数据、执行写操作,就算第三方成功创建了匿名用户,也无法对你的业务造成实际影响。
记住:客户端的任何配置都无法做到绝对保密,Firebase的安全防护核心是「验证请求来源合法性」和「限制权限范围」,而非依赖API Key的保密。
内容的提问来源于stack exchange,提问作者Jaydip Kalkani
相关产品推荐
相关产品推荐

