喜欢子句和sql注入

Bru*_*sta 10 sql t-sql

我对这种情况有疑问.

我在存储过程中有这样的查询:

SELECT column1, column2
FROM table1
WHERE column1 like '%' + @column1 + '%'
Run Code Online (Sandbox Code Playgroud)

我的问题是,这容易受到SQL注入?我是否需要将此更改为以下内容:(?)

declare @column1Like nvarchar(200);

@column1Like = '%' + @column1 + '%'

SELECT column1, column2
FROM table1
WHERE column1 like @column1Like
Run Code Online (Sandbox Code Playgroud)

问候

rse*_*nna 10

快速回答是否定的.要易受SQL注入攻击,必须使用动态SQL执行.

很容易受到攻击:

EXECUTE ('SELECT column1, column2 FROM table1 WHERE column1 like ' + @column1Like);
Run Code Online (Sandbox Code Playgroud)

这也意味着两个示例之间没有真正的区别(至少从安全角度来看).