我看到了一些类似的问题,没有关于mysql的问题......
有没有办法在SP中进行sql注入?
如何在SP级别上保护此功能?
换句话说,可以通过传入参数以任何方式修改SP内部的查询结构吗?
如果我向存储过程发送参数“1; DELETE FROM users; - ”
并且查询是:
select *
from T
where = @p
答案 0 :(得分:5)
SQL注入基本上是为查询添加额外的代码。发生攻击本身是因为服务器将输入数据解析为SQL代码并相应地执行它。你无法在SP级别上保护它,因为当执行到达程序时,攻击已经成功。
因此,只要您将查询构造为文本,无论查询的文本是什么,都可以进行SQL注入。如果你不这样做,或者你正确地清理了你的输入,那么SQL注入应该不是问题,无论是SELECT还是别的。