这叫SQL 注入漏洞攻击。当使用字符串拼接的形式进行数据库查询时,如
comm.CommandText="select * from T_USERS where UserName='"+username+"'and Password='"+password+"‘“;
当用户输入正确的用户名Admin,密码为1' or '1'='1时,以上SQL语句会被自动拼接为:
select * from T_USERS
where (UserName ='Admin') and (Password ='1') or ('1'='1')
即只要用户名正确,这语句就恒成立,所以就能登录成功。
若要避免SQL注入漏洞攻击,就应该使用参数化查询。 |