У нас есть функция, которая позволяет пользователям фильтровать список с помощью оператора sql.Есть ли инъекционная атака с предоставленным пользователем подзапросом для предложения where in?
Прилагаемый пользователя заявление по существу, используется как:
select * from table where id in (subquery) -- where subquery is given by the user
Я пытался дать ему ); delete from table; --
и delete from table returning id
, но безрезультатно. Любые другие возможности? Я не беспокоюсь о том, что пользователь видит данные, и они не могут получить доступ в противном случае.
'1); удалить из таблицы; - ' – GSerg
Да, если исходный подзапрос интерполирован со строкой SQL, уязвимой для инъекции. Правильно очистите пользовательский ввод, и это не будет проблемой. –
@GSerg Спасибо, что «работал». –