如何防止用户访问/修改客户端模型/集合?
问问题
1473 次
2 回答
7
使用allow
和deny
定义允许每个客户端进行哪些数据库更改。
从文档中:
当客户端对集合调用 insert、update 或 remove 时,将在服务器上调用集合的允许和拒绝回调以确定是否应允许写入。如果至少有一个允许回调允许写入,并且没有拒绝回调拒绝写入,则允许写入继续。
这些检查仅在客户端尝试直接写入数据库时运行,例如通过从事件处理程序内部调用更新。服务器代码是受信任的,不受允许和拒绝限制。这包括使用 Meteor.call 调用的方法——它们应该进行自己的访问检查,而不是依赖于允许和拒绝。
您可以根据需要多次调用allow,并且每次调用都可以包含插入、更新和删除函数的任意组合。如果函数认为应该允许该操作,则它们应该返回 true。否则它们应该返回 false,或者什么都不返回(未定义)。在这种情况下,Meteor 将继续搜索集合上的任何其他允许规则。
于 2012-12-14T01:08:01.343 回答
2
正如马特提到的那样,不再需要解决这个问题。然而,作为标准,似乎需要删除自动发布包以保护系统。Meteor 文档涵盖保护收藏:http ://docs.meteor.com/#meteor_collection
于 2012-05-04T16:57:17.367 回答