有人天天高唱要什么安全,结果自己写代码的时候自己用Format函数作死,Demo如下:

string.Format(" and Name like '%{0}%'", keywords);

写上面代码的人,麻烦劳累下,改成下述语句吧,不然你自己作死没人救得了你:

DECLARE @name NVARCHAR(50)
SET @name=''' or 1=1 ---'
exec sp_executesql 
N'SET @name = ''%'' + @name + ''%'';
SELECT *
FROM Items WHERE 1 = 1 AND Name LIKE @name', 
N'@name nvarchar(50)',
@name=@name