天天看點

csharp資料庫安全

我們先來把代碼粘貼出來看!      
代碼一:      
public Boolean insertReturn_header(string INVOICE_NO)
        {
 
            string sql = "insert into wms_return_header"
                       + "(INVOICE_NO)values"
                       + "(@INVOICE_NO) ";
 
            SqlParameter[] parameters = {
                new SqlParameter("INVOICE_NO",INVOICE_NO),
            };
 
            DB.connect();
 
            //傳回受影響行數InfluenceNum
            int InfluenceNum = DB.insert(sql, parameters);
 
            if (InfluenceNum > 0)
                return true;
            else
                return false;
        }      
代碼二:      
static SqlConnection conn;
        public static void connect()
        {
            string connectStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            conn = new SqlConnection(connectStr);
        }
       public static int insert(string str,SqlParameter[] cmdParms)
       {
           //添加資料
           SqlCommand sqlcomman = new SqlCommand();
           sqlcomman.Connection = conn;
           sqlcomman.CommandText = str;
           try
           {
               if (cmdParms != null)
               {
                   foreach(SqlParameter parm in cmdParms){
                       sqlcomman.Parameters.Add(parm);
                   }
               }
               conn.Open();
               sqlcomman.ExecuteNonQuery();
               conn.Close();
               return 1;
               
           }
           catch(Exception ex)
           {
               return 0;      
主要想說的是C#中有利于資料庫安全的一個類,SqlParameter類,這個類利于資料的精确傳輸,防止資料庫被注入。      
舉個例子:如果使用者的查詢語句是select * from user where name='"&user&"' and password='"&pwd&"',那麼,      
如果使用者輸入的是“1'or'1'='1”,則查詢語句将會變成 select * from admin where user where name='1'or'1'      
='1' and password='"&pwd&"'這樣一來語句就通過了,别人就可以進入程式的管理界面了。      
           }
       }
        
csharp資料庫安全