SQL注入漏洞攻击

* 登陆判断:select * from T_Users where UserName=... and Password=...,将参数拼到SQL语句中。

 

*构造恶意的Password: 'or'1'='1

 

if(reader.Read())

 

{

 

    Response.Write("登录成功!");

 

 

else

 

{

 

  Response.Write("登录失败!");

 

}

 

* 防范注入漏洞攻击的方法:不使用SQL语句拼接,通过参数赋值。

 

*  SQL语句使用@UserName表示“此处用参数代替”,向SqlCommand的Patameters中添加参数

 

     cmd.CommandText="select * from T_User where UserName=@UserName and Password=@Password";

 

     cmd.Parameters.Add(new SqlParameters("UserName","bobo"));

 

     cmd.Parameters.Add(new SqlParameters("Password","123"));

 

*参数在SQLServer内部不是简单的字符串替换,SQLServer直接用添加的值进行数据比较,因此不会有注入漏洞攻击

posted @ 2011-01-11 09:50  快乐的langYa  阅读(527)  评论(0编辑  收藏  举报