Javascript 有没有办法限制用户在Firebase上编辑自己的信息?
我有一个满是用户的数据库。每个用户都有一个得分值,表示他们在排行榜中的得分。现在,我可以轻松地使用firebase安全规则来防止其他人更改该用户的分数。但是,如何防止用户在数据库中编辑自己的分数,而不阻止程序更新用户分数?问题是在浏览器控制台中编辑用户数据很容易。如何预防这种情况 以下是设置用户分数值的代码:Javascript 有没有办法限制用户在Firebase上编辑自己的信息?,javascript,firebase,firebase-security,Javascript,Firebase,Firebase Security,我有一个满是用户的数据库。每个用户都有一个得分值,表示他们在排行榜中的得分。现在,我可以轻松地使用firebase安全规则来防止其他人更改该用户的分数。但是,如何防止用户在数据库中编辑自己的分数,而不阻止程序更新用户分数?问题是在浏览器控制台中编辑用户数据很容易。如何预防这种情况 以下是设置用户分数值的代码: function setUserValue(uid, type, value) { var userRef = new Firebase("https://bragr.fireba
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如果你依靠客户端程序的规则来产生“有效”的分数增量,不幸的是,无法区分发送虚假分数增量和有效分数增量的受损客户端。但是,如果外部观察者可以使用客户机更新的数据进行评分,从而取消无效或可疑数据的资格,则可以编写特权代理来执行此操作。这取决于它是什么类型的游戏,需要更多的信息来进一步评论。分数是根据数据库中的一系列其他对象计算的。那么你的建议是根据这些计算分数值吗?