gpt4 book ai didi

firebase - 与恶意用户合作 : In Firebase, 是由客户端进行反规范化吗?

转载 作者:行者123 更新时间:2023-12-02 08:03:09 24 4
gpt4 key购买 nike

This blog post describes how to denormalize data in Firebase 。最终他们透露,为了以正确的非规范化方式添加注释,此代码是必要的:

functon onCommentSubmitted(comment) {
var root = new Firebase("https://awesome.firebaseio-demo.com");
var id = root.child("/comments").push();
id.set(comment, function(err) {
if (!err) {
var name = id.key();
root.child("/links/" + comment.link + "/comments/" + name).set(true);
root.child("/users/" + comment.author + "/comments/" + name).set(true);
}
});
}

令我困扰的是你必须多么信任这里的客户。损坏或恶意的客户端可能会通过错误更新索引来导致一些非常奇怪的事情。例如,他们可以跳过更新“作者”索引来发布显示在链接上但不在他们自己的页面上的评论。或者他们可以使相同的评论出现在多个位置。

如何保护索引的完整性?是否可以将此索引代码移至 Firebase 的服务器端,以便它始终正确更新索引?

我想您必须运行自己的服务器来监听所有事件并根据需要更新索引。如果 Firebase 能为您处理就好了。

最佳答案

提高安全性的方法之一是使用 Firebase 规则来确保您在 JSON 数据库的每个级别/深度都拥有正确的读取或写入权限。

因此,在您的情况下,您可以使 /users 无法被任何人写入,但 /users/123abc 只能由 uid 为123abc。这样,如果有人尝试跳过 uid 并尝试写入 /users/comments/...,Firebase 将会响应某种“权限缺失”消息。

有关安全和规则的更多数据 here .

服务器端更新当然也是可能的。然而,Firebase 的优点在于客户端直接与 Firebase 打交道,这会显着减少服务器的带宽(如果您需要的话)。但是您可以为某些事情提出理由,只允许您的服务器写入 firebase。例如,您可能只希望服务器在 firebase 上创建用户帐户。

希望这有帮助!

关于firebase - 与恶意用户合作 : In Firebase, 是由客户端进行反规范化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39800531/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com