為什么要參數化執行SQL語句呢?


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的執行。

參數化就可以避免這個問題了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM