我有规则设置,以确保像键约束的外键:当我将数据放在某个路径时,密钥被验证存在于另一个节点.
规则片段:
"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可绕过安全规则,并具有对实时数据库的"管理"访问权限.