登录防止sql注入

  1. 登录查询语句最好不要用连接字符串查询,防止sql注入。1‘or’1‘=’1  
  2. string username="admin";  
  3. string password="123";  
  4. string str="连接字符串";  
  5. using(sqlconnection cnn=newsqlconnection(str))  
  6. {  
  7.   using(sqlcommand cmd=cnn.createcommand())  
  8.  {  
  9.   cmd.commandtext="select count(*) from login where username='"+username+"'and password='"+password+"'";  
  10.   int i=convert.toint32(cmd.executescalar());  
  11.   if(i>3)  
  12.   {  
  13.     console.write("yes");  
  14.   }  
  15.   else  
  16.   {  
  17.    console.write("no");  
  18.   }  
  19.  }  
  20. }  
  21.   
  22. 登录查询语句最好要用,防止sql注入。  
  23. string username="admin";  
  24. string password="123";  
  25. string str="连接字符串";  
  26. using(sqlconnection cnn=newsqlconnection(str))  
  27. {  
  28.   using(sqlcommand cmd=cnn.createcommand())  
  29.  {  
  30.   cmd.commandtext="select count(*) from login where username=@username and password=@password";  
  31.   cmd.parameters.add(new sqlparameter("username",username));  
  32.   cmd.parameters.add(new sqlparameter("password",password));  
  33.   int i=convert.toint32(cmd.executescalar());  
  34.   if(i>3)  
  35.   {  
  36.     console.write("yes");  
  37.   }  
  38.   else  
  39.   {  
  40.    console.write("no");  
  41.   }  
  42.  }  
  43. }  
  44.   
  45. 限制错误登录次数  
  46. private void incerrortimes()  
  47. {  
  48.   using(sqlconnection cnn2=newsqlconnection(str))  
  49.   {  
  50.     using(sqlcommand cmd2=cnn2.createcommand())  
  51.     {  
  52.       cmd2.commandtext="update login set errortimes=errortimes+1 where username=@username";  
  53.       cmd2.parameters.add(new sqlparameter("username",username));  
  54.       cmd2.executenonquery();  
  55.     }  
  56.   }  
  57. }  
  58. private void reseterrortimes()  
  59. {  
  60.   using(sqlconnection cnn2=newsqlconnection(str))  
  61.   {  
  62.     using(sqlcommand cmd2=cnn2.createcommand())  
  63.     {  
  64.       cmd2.commandtext="update login set errortimes=0 where username=@username";  
  65.       cmd2.parameters.add(new sqlparameter("username",username));  
  66.       cmd2.executenonquery();  
  67.     }  
  68.   }  
  69. }  
  70. using(sqlconnection cnn=newsqlconnection(str))  
  71. {  
  72.   using(sqlcommand cmd=cnn.createcommand())  
  73.   {  
  74.     cmd.commandtext="select * from login where username=@username";  
  75.     cmd.parameters.add(new sqlparameter("username",username));  
  76.     using(sqldatareader reader=cmd.executereader())  
  77.     {  
  78.       if(reader.read())  
  79.       {  
  80.         int errortimes=convert.toint32(read["errortimes"]);  
  81.         if(errortimes>3)  
  82.         {  
  83.           console.write("登录错误次数过多,禁止登录");  
  84.           return;  
  85.         }  
  86.         string dbpassword=read["password"];  
  87.         if(password=dbpassword)  
  88.         {  
  89.           console.write("登录成功");  
  90.           reseterrortimes()  
  91.         }  
  92.         else  
  93.         {  
  94.           console.write("登录失败");  
  95.           incerrortimes();  
  96.         }  
  97.       }  
  98.       else  
  99.       {  
  100.         console.write("用户名不存在");  
  101.       }  
  102.     }  
  103.   }  
  104. }  
posted on 2013-08-21 15:43  雪山飞石  阅读(362)  评论(0编辑  收藏  举报