Тест NOSQL Injection на Node.js/Mongoose API
Я погружаюсь в инъекцию NoSql, поэтому я пытаюсь взломать свою базу данных с помощью почтальона, чтобы узнать, есть ли какая-либо уязвимость. В моих запросах используются следующие параметры для полей запроса:
User.find({
// name: req.params.name
name: req.query.name
},
function (err, result) {
if (err) {
console.log('Mongoose findUsers name error: ', err);
res.status(505).send({ error: "Internal error." });
return;
}
if (result != null) {
console.log("Mongoose findUsers name: ", result);
res.status(200).send({
message: "Found users :",
data: result
});
} else {
console.log("Mongoose findUsers name: No user found");
res.status(404).send({
message: "No user found."
});
}
});
Итак, я пытаюсь передать параметр имени как
{"$ne": null}
или же
{"$gt": ""}
, поэтому запрос будет
localhost:5000/api/users?name={"$ne": null}
. Хотя ответ, который я получаю от
findOne
не равен нулю, он вернет пустой массив. Означает ли это, что я уже защищен от инъекций NoSql и мне не нужно дезинфицировать параметры запросов, или я просто не использую правильное значение для выполнения инъекции? Какой еще тест я мог бы запустить, чтобы попытаться правильно проверить, возможна ли инъекция nosql? Как всегда, большое спасибо за вашу помощь. Ваше здоровье.