TSQL将字符串添加到一起并注入

时间:2013-02-05 17:41:43

标签: sql-server tsql stored-procedures sql-server-2008-r2 sql-injection

如何安全地在存储过程中为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注入攻击吗?是否有推荐的方法将字符串添加到一起?

1 个答案:

答案 0 :(得分:1)

没关系。

连接引号和SQL注入的问题只会在您创建SQL语句时出现,然后EXEC - 以某种方式使用。

将它们连接到一个本身不会连接成SQL语句的变量不是SQL注入问题。变量@var2被视为数据而不是可执行代码。