我创建了一个存储过程,可以根据用户输入来搜索表。我认为这段代码有可能受到SQL注入的威胁,因此我用预期会删除表的几个查询进行了测试,但令我惊讶的是表并未被删除。我想知道这个查询是否还可以,还是我缺少什么?
DECLARE @Query VARCHAR(200) = ';DROP TABLE DeleteMe;--'
SELECT f.Name
FROM [Firm] AS f
WHERE f.Name LIKE '%' + @Query + '%';
我尝试了几个查询,上面主题的所有变体。
您可以使用参数和sp_execute()
来保护您的存储过程: