我有规则设置,以确保像键约束的外键:当我将数据放在某个路径上时,该键被验证为存在于另一个节点.
规则片段:
"app": { "freebies": { "$provider_id": { ".validate": "newData.parent().parent().parent().child('app').child('providers').child($provider_id).val() != null" } }
}
如果我用这些参数进行模拟
写给/ app / freebies
宽度数据:{“totally_fake”:1}
这失败了,这是正确的.
另一方面,如果我只是转到在线编辑器并使用相同的数据将节点添加到同一位置,它会毫无错误地写入数据库.
我的问题是:在线编辑器是否绕过了安全规则?
解决方法
是的,它确实. Firebase控制台以及Admin SDK会绕过安全规则并对实时数据库具有“管理”访问权限.