是否可以使用存储过程进行sql注入?

时间:2012-01-23 15:14:36

标签: mysql stored-procedures sql-injection mysql-5.1

我看到了一些类似的问题,没有关于mysql的问题...... 有没有办法在SP中进行sql注入? 如何在SP级别上保护此功能?
换句话说,可以通过传入参数以任何方式修改SP内部的查询结构吗? 如果我向存储过程发送参数“1; DELETE FROM users; - ” 并且查询是:

select *
from T
where = @p

1 个答案:

答案 0 :(得分:5)

SQL注入基本上是为查询添加额外的代码。发生攻击本身是因为服务器将输入数据解析为SQL代码并相应地执行它。你无法在SP级别上保护它,因为当执行到达程序时,攻击已经成功。

因此,只要您将查询构造为文本,无论查询的文本是什么,都可以进行SQL注入。如果你不这样做,或者你正确地清理了你的输入,那么SQL注入应该不是问题,无论是SELECT还是别的。