我刚刚注意到,Meteor.call
阻止用户调用集合的插入、更新、删除方法的概念仍然可以从 JavaScript 控制台调用。
以客户为例:
// client
...
Meteor.call('insertProduct', productInfo);
...
这是服务器部分:
// server
Meteor.methods({
insertProduct: function( productInfo ){
Product.insert(...);
}
})
好的,我知道人们不能直接从他们的 JavaScript 控制台调用 Product.insert() 。
但是,如果他们再多尝试一点,他们会Meteor.call()
从开发者工具的资源选项卡中发现客户端的 JavaScript 中有。
所以现在他们可以尝试Meteor.call
从他们的控制台调用,然后尝试猜测应该是什么productInfo
属性。
所以我想知道我们如何才能防止这种最终活动?是否Meteor.call
做得足够好?或者我错过了一些重要的东西?