Если приложение не принимает JSON и работает только с
application/x-www-form-urlencoded, это не защита от NoSQL-инъекций.Многие серверные либы автоматически преобразуют параметры вида:
username[$ne]=1
в объект:
{ username: { $ne: 1 } }Таким образом, можно передавать NoSQL-операторы через обычные параметры формы 🔥
Ключевое:
➡️ Парсер на сервере преобразует массивы в объекты
➡️ Ограничение по
Content-Type не спасает от инъекции➡️ NoSQL-операторы можно внедрять без JSON
