我正在玩node.js,express和mongoose。直接從URL查詢字符串提供的mongo查詢有多危險?
爲了使事情正常運行,我將Express查詢字符串對象直接傳遞給mongoose find函數。我很好奇的是這種做法在現場應用程序中會有多危險。我知道RDBMS對於SQL注入極其脆弱。除了從「淨化你的投入」的好建議的邪惡是這樣的代碼:
app.get('/query', function (req, res) {
models.findDocs(req.query, function (err, docs) {
res.send(docs);
});
});
意思就是AA GET請求http://localhost:8080/query?name=ahsteele&status=a
只會推下到findDocs功能:
{
name: 'ahsteele',
status: 'a'
}
這種感覺很多原因引起的,但它有多不安全?將查詢參數傳遞給mongodb的最佳做法是什麼?快遞是否提供任何開箱衛生處理?
有沒有聽說過操作員注射?因此,有人可以在可以從數據中收集數據的url中形成查詢,就像bobby表格示例一樣? – Sammaye 2013-04-10 07:21:00
一旦你接受,仍需要進行消毒,我也想補充一點,你考慮的查詢可能會導致大量的系統不必要的顛簸,如果不使用索引,等等。 – WiredPrairie 2013-04-10 10:49:43