Мне нужно использовать динамический SQL в хранимой процедуре.Функция, которая удаляет символы, которые могут вызвать SQL-инъекцию
Этот динамический SQL создаст объект SQL, поэтому я не могу его параметризовать и выполнить его с помощью sp_executesql
.
Есть ли какая-нибудь функция SQL, которая проверит переменную параметра хранимой процедуры и скажет, есть ли какие-то незаконные символы? Или удалить их или список этих символов?
Что-то вроде
DECLARE @variable = 'password OR 1=1'
IF IsSqlInjectionPossible(@variable)
BEGIN
RAISERROR('Illegal input characters',16,1)
RETURN
END
или
SET @variable = removePossibleSqlInjection(@variable)
Как вы делаете это?