Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法限制用户在Firebase上编辑自己的信息?_Javascript_Firebase_Firebase Security - Fatal编程技术网

Javascript 有没有办法限制用户在Firebase上编辑自己的信息?

Javascript 有没有办法限制用户在Firebase上编辑自己的信息?,javascript,firebase,firebase-security,Javascript,Firebase,Firebase Security,我有一个满是用户的数据库。每个用户都有一个得分值,表示他们在排行榜中的得分。现在,我可以轻松地使用firebase安全规则来防止其他人更改该用户的分数。但是,如何防止用户在数据库中编辑自己的分数,而不阻止程序更新用户分数?问题是在浏览器控制台中编辑用户数据很容易。如何预防这种情况 以下是设置用户分数值的代码: function setUserValue(uid, type, value) { var userRef = new Firebase("https://bragr.fireba

我有一个满是用户的数据库。每个用户都有一个得分值,表示他们在排行榜中的得分。现在,我可以轻松地使用firebase安全规则来防止其他人更改该用户的分数。但是,如何防止用户在数据库中编辑自己的分数,而不阻止程序更新用户分数?问题是在浏览器控制台中编辑用户数据很容易。如何预防这种情况

以下是设置用户分数值的代码:

function setUserValue(uid, type, value) {
    var userRef = new Firebase("https://bragr.firebaseio.com/users/" + uid
            + "/" + type);
    userRef.transaction(function(currentValue) {
        return value;
    });
}
如果我这样调用函数:

setUserValue(user.id, "score", 10);
在数据库中,用户得分设置为10。这应该是允许的。然而,我试图阻止用户能够简单地将其输入控制台并破解他们的分数

以下是数据库的结构:

355e3361-a124-491e-8c2b-239893b5cf62:
--- email: "test@test.com"
--- score: 50
--- username: "Stacker"

我不知道你的意思。因为,我刚刚在浏览器控制台中输入了一个update命令,它更改了DB@IanOP说的是Firebase,不是关系数据库。@AsadSaeeduddin啊,你说得对,我很抱歉。@SidneydeVries如果你依靠客户端程序的规则来产生“有效”的分数增量,不幸的是,无法区分发送虚假分数增量和有效分数增量的受损客户端。但是,如果外部观察者可以使用客户机更新的数据进行评分,从而取消无效或可疑数据的资格,则可以编写特权代理来执行此操作。这取决于它是什么类型的游戏,需要更多的信息来进一步评论。分数是根据数据库中的一系列其他对象计算的。那么你的建议是根据这些计算分数值吗?