Я играю с node.js, express и mongoose.
Чтобы получить что-то и запустить прямо сейчас, я передаю строковый объект Express query непосредственно в функцию поиска мангуста. Мне любопытно, насколько опасна эта практика в реальном приложении. Я знаю, что СУБД будет чрезвычайно уязвим для SQL-инъекций. Помимо хорошего совета "дезинформировать ваши материалы", как зло является этим кодом:
app.get('/query', function (req, res) {
models.findDocs(req.query, function (err, docs) {
res.send(docs);
});
});
Предполагая, что запрос a get для http://localhost:8080/query?name=ahsteele&status=a
просто запустит следующее в функцию findDocs:
{
name: 'ahsteele',
status: 'a'
}
Это неприятно по многим причинам, но насколько опасно это? Какая наилучшая практика для передачи параметров запроса в mongodb? Является ли экспресс какой-либо из дезактивации коробки?