我需要在存儲過程中使用動態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)
你怎麼做呢?