如何安全地在存储过程中为SQL参数变量(SQL Server 2008 R2)添加双引号?
我有这个:
CREATE PROCEDURE procedure1 (@var1 NVARCHAR(100))
AS
DECLARE @var2 NVARCHAR(100);
SET @var2 = '"' + @var1 + '"';
SELECT * FROM TABLE1 WHERE CONTAINS(col1, @var2);
END
我的SET @var2
语句易受SQL注入攻击吗?是否有推荐的方法将字符串添加到一起?
答案 0 :(得分:1)
没关系。
连接引号和SQL注入的问题只会在您创建SQL语句时出现,然后EXEC
- 以某种方式使用。
将它们连接到一个本身不会连接成SQL语句的变量不是SQL注入问题。变量@var2
被视为数据而不是可执行代码。