Firebase云函数安全规则配置及AppCheck生效逻辑相关问题
云函数是否支持类似Firestore的声明式安全规则
Firebase云函数本身没有提供和Firestore、云存储、实时数据库一致的声明式安全规则配置能力,你无法像编写Firestore安全规则那样通过控制台配置全局拦截规则,所有安全校验逻辑都需要你在云函数代码中主动实现,常见的防滥用手段包括:
- 身份校验:在可调用云函数中读取
context.auth字段,拦截未登录的非法请求,对已登录用户也要做权限校验,避免越权操作 - 接入AppCheck校验应用合法性,拦截来自篡改客户端、爬虫脚本的恶意请求
- 配置请求频率限制,可以借助Cloud Functions原生的并发配额,或者搭配Redis、Firestore实现单用户、单IP的频次拦截
- 对所有请求参数做合法性校验,避免参数注入、异常参数导致的服务故障
AppCheck调用云函数是否自动生效
需要根据你使用的云函数类型区分:
- 如果你使用的是可调用云函数(Callable Functions),也就是客户端通过
httpsCallable接口触发的云函数,你只需要在Firebase控制台开启对应云函数的AppCheck强制校验开关,整个校验逻辑会自动在网关层生效,不需要你额外编写context.app相关的校验代码,非法应用的请求不会进入到你的云函数业务逻辑中。如果你有自定义校验需求,也可以主动读取context.app字段做更细粒度的判断。 - 如果你使用的是普通HTTP触发的云函数,AppCheck不会自动生效,你需要自行在客户端请求头中携带AppCheck令牌,在云函数代码中手动完成令牌解析和校验逻辑。
内容的提问来源于stack exchange,提问作者Noobdeveloper
相关产品推荐
相关产品推荐

