我对这种情况有疑问.
我在存储过程中有这样的查询:
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)
这也意味着两个示例之间没有真正的区别(至少从安全角度来看).
| 归档时间: |
|
| 查看次数: |
12021 次 |
| 最近记录: |