关于表达验证的一些问题

时间:2014-02-13 20:11:23

标签: node.js validation express

我有一些关于节点输入验证的问题,也许有一些概念我只是误解而需要澄清。我目前正在使用快速验证器。

我目前有类似的东西:

function validate(req) {
req.assert('name', 'Please enter a name').notEmpty()
req.assert('email', 'Please enter an email').notEmpty()

var errors = req.validationErrors();
return errors;
};

app.post('/contactform', function(req, res){
var err = validate(req);

   if (!err) {
        res.send('everything is good to go')
   } else {
       res.send(err)
   }
});

我理解验证部分,但是一旦我对其进行消毒,我该如何实际使用这些信息呢?

我尝试了

的内容
var email = req.sanitize('email').toString()

但这只是给了我一个[object object]

所以我有几个问题:

  1. 我如何实际使用消毒过的字符串?或者快递验证器模块是否只是验证/消毒,我还需要做其他事情才能真正使用消毒后的输出?
  2. 另外,在确认安全性之前是否应该对输入进行清理?
  3. 修改 所以我查看了express-validator的源代码,发现参数存储为req.param('name')req.param('email')。我假设如果您清理和/或验证参数然后访问它们,您将收到已清理的版本。这回答了我的第一个问题,仍对第二个关于一般安全的问题感到好奇。

1 个答案:

答案 0 :(得分:0)

我使用trim()链接到sanitize():

var str = req.sanitize('input').trim();