日期:2014-05-18  浏览次数:21004 次

SqlParameter是怎么防止SQL注入的?
例如:我把一个值“aa' or 1=1”这样的值通过SqlParameter传递时,执行时就不会出错,而且还能防注入,但我想知道把值传给了SqlParameter后,它传给SQl的是什么值,什么的什么方法转换的。
谢谢

------解决方案--------------------
LZ这个列子对sql注入将的很详细
点此进入
------解决方案--------------------
探讨
stirng nn="aa or 1=1";
"select * from tb where t1='"+nn+"'";


//防注入
"select * from tb where t1=@N";
cmd.Parameters.Add(new SqlParameter(@N,aa or 1=1));

------解决方案--------------------
利用参数化查询是防止SQL恶意注入的有效方法。

避免用参数直接拼SQL语句。