Tee*_*sej 6 javascript meteor meteor-methods
我只是注意到,Meteor.call阻止用户调用集合的插入,更新,删除方法的概念仍然可以从JavaScript控制台调用.
对于客户的例子:
// client
...
Meteor.call('insertProduct', productInfo);
...
Run Code Online (Sandbox Code Playgroud)
这是服务器部分:
// server
Meteor.methods({
insertProduct: function( productInfo ){
Product.insert(...);
}
})
Run Code Online (Sandbox Code Playgroud)
好的,我知道人们不能直接从他们的JavaScript控制台调用Product.insert().
但是如果他们再多尝试一下,他们会发现Meteor.call()客户端的JavaScript来自Developer工具的资源选项卡.
所以现在他们可以尝试Meteor.call从他们的控制台调用,然后尝试猜测应该是什么productInfo属性.
所以我想知道我们怎么能阻止这个最后的活动呢?是否Meteor.call做的工作不够好?或者我错过了一些重要的事情?
Meteor.call 是一个全局函数,就像window.alert(). 不幸的是,您无法阻止用户调用 Meteor.call。但是,您可以验证数据架构和用户发送的实际数据。我建议使用https://github.com/aldeed/meteor-simple-schema(aldeed:simple-schema作为meteor包名称)以确保您不会在项目中获得垃圾数据。