Можно ли делать инъекции SQL с помощью хранимых процедур? - PullRequest
0 голосов
/ 23 января 2012

Я видел похожий вопрос, ни один о MySQL ...
Есть ли способ сделать инъекцию SQL в SP? Как мне защититься от этого на уровне SP?
Другими словами, может ли структура запроса внутри SP каким-либо образом модифицироваться входящим параметром?
Если я отправлю хранимой процедуре параметр «1; УДАЛИТЬ ОТ пользователей; -» и запрос:

select *
from T
where = @p

1 Ответ

5 голосов
/ 23 января 2012

Внедрение SQL - это, по сути, добавление дополнительного кода в запрос.Сама атака происходит потому, что сервер анализирует входные данные как код SQL и выполняет их соответствующим образом.Вы не можете защитить от него на уровне SP, потому что, когда выполнение попадает в процедуру, атака уже прошла успешно.

Так что, пока вы строите свои запросы в виде текста, внедрение SQL возможно независимо от того, чтоТекст запроса есть.И если вы этого не сделаете, или если вы должным образом санируете свой ввод, то опять же, внедрение SQL не должно быть проблемой, будь то SELECT или что-то еще.

...