我有一些关于 Node 输入验证的问题,也许有一些概念我只是误解并且需要澄清。我目前正在使用快速验证器。
我目前有类似的东西:
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 模块只是验证/清理,而我需要做其他事情才能真正能够使用清理后的输出?
- 此外,在验证安全性之前是否应该对输入进行清理?
编辑:
所以我查看了express-validator的源代码,发现参数存储为 req.param('name')
或 req.param('email')
。我假设如果您清理和/或验证参数然后访问它们,您将收到清理后的版本。这回答了我的第一个问题,仍然对有关一般安全的第二个问题感到好奇。
最佳答案
我使用 trim() 链接到 sanitize():
var str = req.sanitize('input').trim();
关于node.js - 关于快速验证的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21764494/