Тест 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? Как всегда, большое спасибо за вашу помощь. Ваше здоровье.

0 ответов

Другие вопросы по тегам