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