Comments 11
UFO just landed and posted this here
Можно ещё хранимые процедуры использовать.
-2
А что, их в Монгу уже завезли?
-2
А где про Монгу написано было?
0
Так использован ее синтаксис запросов же.
0
В этом что-то уникальное есть?
В других СУБД так нельзя что ли?
SELECT name FROM users WHERE login = \"" + login + "\""
В других СУБД так нельзя что ли?
0
Вы привели пример давно решенной проблемы, который был приведен в статье исключительно чтобы налить воды. А реальная проблема — вот эта:
{
paramA: userInput.paramA,
paramB: {$in: [
userInput.paramB[0],
userInput.paramB[1],
]},
}
+1
Чтобы избежать эту проблему, нужно всегда писать команды так, чтобы их нельзя было получить от пользователя.
Спасибо, Кэп, это ведь все, что ты хотел сказать?
На самом деле проблема глубже: нельзя данные делать слишком «умными». А идеально — максимально жестко ограничивать формат.
К примеру, если мы ждем параметр «цвет» в формате RGB, то нужно проверять, чтобы это была последовательность символов 0-9, A-F из 6 знаков. даже символ # не нужно разрешать, его можно и так подставить. 6 знаков, не 7, не 8…
+1
Sign up to leave a comment.
Актуальна ли проблема инъекций в JavaScript?