javascript - 如何防止从 JavaScript 控制台调用 'Meteor.call'?

标签 javascript meteor meteor-methods

我刚刚注意到 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/

相关文章:

meteor - 异步函数 : TypeError: callback is not a function 回调异常

javascript - 使用 Google map 触发标记和标记簇上的点击事件

meteor - Iron Router 在加载 WaitOn : Meteor 之前显示我未找到的模板

javascript - Meteor - 如何在不丢失上下文的情况下重试失败的 HTTP 请求?

javascript - 将两个类传递给meteorjs点击事件?

javascript - Meteor.call 即使有回调函数也会引发异常

javascript - 嵌套函数中的变量返回未定义

javascript - div css onclick更改多个图像

javascript - Django 在文本编辑器中插入 utf 8 文本

javascript - 在 Meteor 中的每个方法调用之前和之后运行代码