小编典典

Like子句和sql注入

sql

我对此情况有疑问。

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

SELECT column1, column2
FROM table1
WHERE column1 like '%' + @column1 + '%'

我的问题是,这容易受到SQL注入的攻击吗?我需要将其更改为以下内容吗?(?)

declare @column1Like nvarchar(200);

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

SELECT column1, column2
FROM table1
WHERE column1 like @column1Like

阅读 208

收藏
2021-04-17

共1个答案

小编典典

快速的答案是不。为了易于进行SQL注入,必须使用动态SQL执行。

将很容易受到攻击:

EXECUTE ('SELECT column1, column2 FROM table1 WHERE column1 like ' + @column1Like);

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

2021-04-17