我有一些关于节点输入验证的问题,也许有一些概念我只是误解而需要澄清。我目前正在使用快速验证器。
我目前有类似的东西:
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]
。
所以我有几个问题:
修改
所以我查看了express-validator的源代码,发现参数存储为req.param('name')
或req.param('email')
。我假设如果您清理和/或验证参数然后访问它们,您将收到已清理的版本。这回答了我的第一个问题,仍对第二个关于一般安全的问题感到好奇。
答案 0 :(得分:0)
我使用trim()链接到sanitize():
var str = req.sanitize('input').trim();