为什么参数化SQL查询可以防止SQL注入?
sql注入就是指我们在URL中传递变量testid,并且提供值为23,由于它是对数据库进行动态查询的请求(其中?testid=23表示数据库查询变量),所以我们可以在URL中嵌入恶意SQL语句。
首先我们定义一个存储过程根据jobId来查找jobs表中的数据
接着修改我们的Web程序使用参数化的存储过程进行数据查询。
现在我们通过参数化存储过程进行数据库查询,这里我们把之前添加的正则表达式校验注释掉。大家看到当我们试图在URL中嵌入恶意的SQL语句时,参数化存储过程已经帮我们校验出传递给数据库的变量不是整形。