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