我需要在存储过程中使用动态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)
你怎么做呢?