Stored procedures 绑定变量和存储过程

Stored procedures 绑定变量和存储过程,stored-procedures,Stored Procedures,我的理解是,参数化查询和存储过程都有助于防止sql注入 参数化查询是否导致无法注入sql 使用非常糟糕的存储过程的参数化查询是否会导致无法注入sql 是否有上述任何一种情况的例子?谢谢是的,参数化查询和存储过程确实有助于防止SQL注入 但说他们让这一切变得不可能有点牵强。在编写查询时,使用参数和考虑因素肯定会阻碍注入 但是\u非常糟糕查询或存储过程仍然可能被注入 例如,在存储过程或查询中使用动态SQL查询: CREATE STORED PROCEDURE [BadStoredProcedure]

我的理解是,参数化查询和存储过程都有助于防止sql注入

参数化查询是否导致无法注入sql

使用非常糟糕的存储过程的参数化查询是否会导致无法注入sql


是否有上述任何一种情况的例子?谢谢

是的,参数化查询和存储过程确实有助于防止SQL注入


但说他们让这一切变得不可能有点牵强。在编写查询时,使用参数和考虑因素肯定会阻碍注入

但是
\u非常糟糕
查询或存储过程仍然可能被注入

例如,在存储过程或查询中使用动态SQL查询:

CREATE STORED PROCEDURE [BadStoredProcedure]
   (@columnList varchar(MAX))
AS
BEGIN
   DECLARE @sqlCommand varchar(1000)       

   SET @sqlCommand = 'SELECT ' + @columnList + ' FROM Customers'

   EXEC (@sqlCommand)
END

猜猜如果
*;截断表客户;SELECT*
被传递到
@columnList

“但是说它们使它不可能是有点牵强的。使用参数肯定会阻止注入,但可能会发生其他类型的攻击。”还有哪些类型的攻击是可能的?@user2656984-引用我的答案中的文本没有任何帮助,但我重新措辞了。希望这能回答你的问题。我更担心参数化查询。我知道存储过程中的动态查询可以根据您的示例进行注入:)我对参数化查询如何工作的理解是按照准备和执行的顺序进行的:顺序一是发送到服务器的“preparequery”,步骤二是“executequery”将其与参数一起发送到服务器。你所说的“vary bad”查询是什么意思,有什么例子吗?我的答案中的例子是可以注入的,即使它被参数化了。该示例适用于存储过程,但同样适用于参数化查询。这是我第一次想到的;其他情况也可能存在,但我想不出任何意外。谢谢,到目前为止,我还没有找到一个参数化被注入/破坏的有效例子。到目前为止,我只发现它无法注射,请参阅本视频的幻灯片50。