例:假設乙個賬戶密碼的輸入在資料庫中是這樣進行判斷的。
select (fpassword ='123456
' ) as
pwdcorrect
from
t_user
where fuser=
'guest
'
如果輸入:
select (fpassword='1'or'1
'='1
') as
pwdcorrect
from
t_user
where fuser=
'abc
'
因為 『1』=『1』 永遠返回的是true 所以 這就造成了sql 的注入漏洞。
解決辦法:
①:過濾敏感字元
if(user.contains("or","
and","
select
","delete"))
②使用引數化 sql語句(推薦)
string user=textuser.gettext();string password=textpassword.gettext();
query=createquery("
select (fpassword= :password) as pwdcorrect from t_user where f_user=:user");
query.setparameter(
":password
",password);
query.setparameter(
":user
",user);
if(rs.getbool("
pwdcorrect
")==true)
SQL注入漏洞
sql注入漏洞曾經是web應用程式的噩夢,cms bbs blog無一不曾受其害。sql注入的原理 以往在web應用程式訪問資料庫時一般是採取拼接字串的形式,比如登入的時候就是根據使用者名稱和密碼去查詢 string sql select top 1 from user where username...
SQL注入漏洞
sql注入,就是通過把sql命令插入到web表單遞交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令,比如先前的很多影視 洩露vip會員密碼大多就是通過web表單遞交查詢字元暴出的,這類表單特別容易受到sql注入式攻擊 sql注入的發生 當應用程式使用輸入內容來構造動態sq...
sql注入漏洞
什麼是sql注入 通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。通俗地講,它是利用現有應用程式,將 惡意 的sql命令注入到後台資料庫引擎執行的能力,它可以通過在web表單中輸入 惡意 sql語句得到乙個存在安全漏洞的 上的資料庫,而...