具有参数的存储过程如何防止SQL注入

问题描述 投票:0回答:1

我创建了一个存储过程,可以根据用户输入来搜索表。我认为这段代码有可能受到SQL注入的威胁,因此我用预期会删除表的几个查询进行了测试,但令我惊讶的是表并未被删除。我想知道这个查询是否还可以,还是我缺少什么?

DECLARE @Query VARCHAR(200) = ';DROP TABLE DeleteMe;--'

SELECT f.Name 
FROM [Firm] AS f
WHERE f.Name LIKE '%' + @Query + '%';

我尝试了几个查询,上面主题的所有变体。

sql-server tsql stored-procedures parameters sql-injection
1个回答
0
投票

您可以使用参数和sp_execute()来保护您的存储过程:

© www.soinside.com 2019 - 2024. All rights reserved.