对于初学者,普通验证好像没法体现出“参数”的作用,但是和数据库交互的时候,由于验证数据库中数据的时候需要用到SQL语句,就会造成漏洞。比如“ select * from userData where userName=‘abcd‘ and passWord=‘ ‘or‘1‘=‘1 ‘ “其实这个where条件就是没有条件,因此验证等于没有验证。所以才有了”参数“的价值。
跟之前普通验证差不多,只不过现在多了一个连接数据库,并传入SQL语句,将查询的结果返回给程序再做出判断。
普通验证的漏洞:

特殊验证:需要”参数“处理:
string sqlStr = string.Format("select count(*) from userData where userName=@userName and passWord=@passWord", uN, pW);
SqlParameter tempP1 = new SqlParameter("@userName", uN);
SqlParameter tempP2 = new SqlParameter("@passWord", pW);
cmd.Parameters.Add(tempP1);
cmd.Parameters.Add(tempP2);

只有数据完全和数据库内的信息一样,才能验证成功。

附上代码验证中”参数“作用
备注:写于2013年4月2日
验证中“参数”作用,布布扣,bubuko.com
验证中“参数”作用
原文:http://blog.csdn.net/shengjianzhichenhui/article/details/20281199