1

如何安全地将双引号添加到存储过程中的 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 注入的影响?有没有推荐的将字符串添加在一起的方法?

4

1 回答 1

1

没关系。

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

将它们连接到本身未连接到 SQL 语句中的变量不是 SQL 注入问题。该变量@var2自始至终被视为数据而不是可执行代码。

于 2013-02-05T18:20:20.017 回答