- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
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/
这个问题在这里已经有了答案: The Bash command :(){ :|:& };: will spawn processes to kernel death. Can you explain
这个恶意 javascript 代码到底在做什么? (function () { var qk = document.createElement('iframe'); qk.src =
我的 JavaScript 代码是否可以在运行时被(恶意)用户编辑,即使它已上传到网络托管站点? 例如,如果我在脚本中声明一个变量,如下所示: var myvalue = 2; 我想知道是否可以编辑为
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
例子: if($('#' + untrusted_js_code).length) > 0 ....` 通常“untrusted_js_code”应该是表示项目 ID 的简单字符串。变量的值来自
我不确定这是 StackOverflow 还是更多的程序员问题,但这里的其他几个人也提出了类似的问题。 在扫描我的 Google Analytics 帐户时,我注意到一些退出链接标记有查询字符串: ?
我正在开发一个 servlet(在 tomcat 上运行),它接收包含 Java 脚本代码的请求,并使用 java 脚本 API 框架评估/运行代码并将答案返回给用户。 由于我们处理的是用户生成的代码
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我是一名优秀的程序员,十分优秀!