如何防止恶意脚本写入Firebase数据库?

如何防止恶意脚本写入Firebase数据库?,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,我已经阅读了firebase 3+文档一段时间了,我仍然想知道如何管理以下有关安全的场景: 假设我有一个发布本地业务的网站,如黄页,在该网站中,拥有帐户的每个人都可以添加新条目,并使用以下模式编辑现有条目的信息: { "businesses"": { "62061635": { "id": "62061635", "name": "Cellphone store" }, "668567

我已经阅读了firebase 3+文档一段时间了,我仍然想知道如何管理以下有关安全的场景:

假设我有一个发布本地业务的网站,如黄页,在该网站中,拥有帐户的每个人都可以添加新条目,并使用以下模式编辑现有条目的信息:

{
    "businesses"": {    
        "62061635": {
            "id": "62061635",
            "name": "Cellphone store"
        },
        "66856728": {
            "id": "66856728",
            "name": "El Bambino restaurant"
        }
    }
}
如果用户成功登录,请在开发者控制台中编写以下代码:

firebase.database().ref('/businesses/').once('value').then(function(snapshot) {
  console.log(snapshot.val());
});
实际上,所有用户都可以检索所有业务信息,这并不是那么激烈,但如果用户使用以下代码而不是上述代码:

var i=0;
while(i++ < 10) {
    var id = generateRandomString();
    firebase.database().ref('businesses/' + id).set({
        id: id,
        name: generateRandomString()
    });
}
var i=0;
而(i++<10){
var id=generateRandomString();
firebase.database().ref('businesss/'+id).set({
id:id,
名称:GeneratorDomainString()
});
}

这是我所担心的,我知道数据库有规则,但在这种情况下,所有用户都可以添加和编辑信息,我如何防止用户运行上述恶意脚本?

如果您想允许所有人阅读/添加/编辑此“恶意脚本”,则可以。如果你不这样做,你应该制定规则,比如在编写时设置一些验证,并缩小拥有此权限的用户的范围。你需要定义“所有用户”的含义。默认情况下,用户必须经过身份验证才能读/写Firebase(v3.x),因此这是第一步。下一步是定义哪个用户可以写,以及他们可以在哪里写。换句话说,定义一个用户如何从一开始就成为一个用户。一旦你做到了这一点,你就可以制定规则来控制阅读和写作。i、 e.一条规则是:只允许用户编写一个包含用户id的节点。是的,我同意,但让我举个例子:假设我正在建立一个像Wikipedia或Wikia这样的网站,在那里,每个拥有帐户的人都可以向网站添加新条目,并能够编辑信息以获得更准确的内容。如果每个人都可以添加/编辑,那么这样一个项目的规则是什么?@SergioFlores,有什么想法吗?仍在努力解决这个问题。