C#參數化執行SQL語句,防止漏洞攻擊本文以MYSQL為例【20151108非查詢操作】
為什么要參數化執行SQL語句呢?
一個作用就是可以防止用戶注入漏洞。
簡單舉個列子吧。
比如賬號密碼登入,如果不用參數,
寫的簡單點吧,就寫從數據庫查找到id和pw與用戶輸入一樣的數據吧
sql:select id,pw where id='inputID' and pw='inputPW';
一般情況沒什么問題,但如果用戶輸入的id或PW帶 ‘ ,這是可能就會出現漏洞,bug了
比如用戶輸入的id是: 1‘ or ’1‘=‘1
這是sql語句執行的是:select id,pw where id='1‘ or ’1‘=‘1 ‘ and pw='inputPW';
那數據庫里的所有賬號密碼都符合這個條件了。
簡而言之,用戶可以通過 ' 來改變你SQL的執行。
參數化就可以避免這個問題了。