为了立即启动并运行某些东西,我将 Express 查询字符串对象直接传递给 mongoose 查找函数。我很好奇的是这种做法在实时应用程序中会有多危险。我知道 RDBMS 极易受到 SQL 注入的攻击。除了“清理你的输入”的好建议之外,这段代码有多邪恶:
app.get('/query', function (req, res) {
models.findDocs(req.query, function (err, docs) {
res.send(docs);
});
});
这意味着 aa get request tohttp://localhost:8080/query?name=ahsteele&status=a
只会将以下内容推入 findDocs 函数:
{
name: 'ahsteele',
status: 'a'
}
出于很多原因,这感觉很糟糕,但它有多不安全?将查询参数传递给 mongodb 的最佳实践是什么?express 是否提供任何开箱即用的消毒?