SQL注入的解決方案有好幾種,待我細細研究過之后逐一講解。
方法一:SqlParameter方法
這里有一篇博客是詳細介紹SqlParameter的,可以看看 點我
string sqlStr="select * from Table where Id=@AutoID";
SqlParameter[] parameters = { new SqlParameter("@AutoID", SqlDbType.Int,4) }; parameters[0].Value = AutoID;
cmd.Parameters.Add(parameters); //如此調用
如果參數不止一個的話,就多new幾個,然后使用AddRange()方法就可以。
大概就是上面代碼的那樣子是最常使用的。
SqlParameter方法的原理呢,就是參數化查詢時,用戶輸入的參數僅僅作為參數而永遠不會作為查詢語句的一部分
什么意思呢?直白的講,參數化之后,用戶輸入的東西僅僅的SQL語句的參數,在執行的時候加上 '' 它僅僅作為參數,不會變成SQL邏輯語句的一部分。