审计 - 参数检查的主要目的是什么?

时间:2015-08-27 04:14:13

标签: meteor

例如,

findByType: function(type) {
   check(type, String);
   var role;
   if(type === 'user') {
       role = 'user'
   } else if(type === 'admin') {
       role = 'admin'
   }
   Accounts.find({role: role})
}

在这种情况下,check(type, String);不是必需的吗?

所以,如果我有自己的支票代码,则无需使用audit-argument-checks?

2 个答案:

答案 0 :(得分:0)

audit-argument-checks要求所有Meteor方法实际check每个参数,如果不这样做,将在服务器上记录一条错误消息并作为“500 Internal”呈现给客户端服务器错误“。

此软件包可帮助您确保所有方法都实现基本的安全检查,但它不会为您检查您的参数(它无法猜测您的参数的预期类型),因此您仍需要调用{{1}除非你想让这个包抛出错误。

https://docs.meteor.com/#/full/auditargumentchecks

答案 1 :(得分:0)

您还可以通过执行以下操作来改进您的检查(除非您希望在类型既不是' admin'也不是' user&'时搜索Accounts.find({role:null}) #39):

params[:controller]
params[:action]

我知道已经有一段时间这个问题被问到了,但我在搜索其他内容时发现了这个问题,并认为我可以提出更好的表格。