1. 程式人生 > >為什麽要參數化執行SQL語句呢?

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

執行sql 漏洞攻擊 用戶輸入 lec bsp 參數化 查找 作用 找到

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

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

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