我刚刚注意到 Meteor.call
,这个阻止用户调用集合的插入、更新、删除方法的概念,仍然可以从 JavaScript 控制台调用。
以客户为例:
// client
...
Meteor.call('insertProduct', productInfo);
...
这是服务器部分:
// server
Meteor.methods({
insertProduct: function( productInfo ){
Product.insert(...);
}
})
好的,我知道人们不能直接从他们的 JavaScript 控制台调用 Product.insert()。
但如果他们多尝试一点,他们会发现在开发人员工具的资源选项卡中客户端的 JavaScript 中有 Meteor.call()
。
现在他们可以尝试从他们的控制台调用 Meteor.call
,然后尝试猜测 productInfo
的属性应该是什么。
所以我想知道我们怎样才能阻止这个最后的事件?
Meteor.call
是否足够好?
或者我遗漏了一些重要的东西?
最佳答案
Meteor.call 是一个全局函数,就像window.alert()
一样。不幸的是,您无法阻止用户调用 Meteor.call。但是,您可以验证数据模式和用户发送的实际数据。我推荐 https://github.com/aldeed/meteor-simple-schema (aldeed:simple-schema 作为 meteor 包名称)以确保您不会在项目中获得垃圾数据。
关于javascript - 如何防止从 JavaScript 控制台调用 'Meteor.call'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122099/