为了立即启动并运行一些东西,我将直接将Express query string对象传递给mongoose find函数.我想知道的是,在一个实时应用程序中,这种做法会有多危险.我知道RDBMS极易受到SQL注入的影响.除了"净化你的输入"的好建议之外,这段代码有多邪恶:
app.get('/query', function (req, res) {
models.findDocs(req.query, function (err, docs) {
res.send(docs);
});
});
这意味着get请求http://localhost:8080/query?name=ahsteele&status=a
只会将以下内容推到findDocs函数中:
{
name: 'ahsteele',
status: 'a'
}
出于很多原因,这让人觉得恶心,但它有多不安全?向mongodb传递查询参数的最佳实践是什么?express是否提供任何开箱即用的卫生处理?