網(wǎng)站建設(shè)的安全-SQL 注入發(fā)布者:本站 時(shí)間:2020-04-07 08:04:06
SQL 注入
引起原因:
其實(shí)現(xiàn)在很多網(wǎng)站中都存在這種問(wèn)題。就是程序中直接進(jìn)行SQL語(yǔ)句拼接??赡苡行┳x者不太明白。下面通過(guò)一個(gè)登錄時(shí)對(duì)用戶(hù)驗(yàn)證來(lái)說(shuō)明:
code:
驗(yàn)證時(shí)的sql語(yǔ)句: select * from where user='"+txtUsername.Text+"' and pwd='"+txtPwd.Text+"'
這是一段從數(shù)據(jù)庫(kù)中查詢(xún)用戶(hù),對(duì)用戶(hù)名,密碼驗(yàn)證。
看上去好象沒(méi)有什么問(wèn)題,但是實(shí)際這里面淺藏著問(wèn)題,用戶(hù)名:admin 密碼: admin,
select * from where user='admin' and pwd='admin'
如果用戶(hù)和密碼正確就可通驗(yàn)證。如果我用戶(hù)名:asdf' or 1=1 -- 密碼:隨意輸入.
我們?cè)賮?lái)看語(yǔ)句:
select * from where user=‘a(chǎn)sdf' or 1=1 -- and pwd=''
執(zhí)行后看到什么 是不是所有記錄,如果程序只是簡(jiǎn)單判斷返回的條數(shù),這種方法就可以通驗(yàn)證。
如果執(zhí)行語(yǔ)句是SA用戶(hù),再通過(guò)xp_cmdshell添加系統(tǒng)管理員,那么這個(gè)服務(wù)器就被拿下了。
解決方法:
(1):這個(gè)問(wèn)題主要是由于傳入特殊字符引起的我們可以在對(duì)輸入的用戶(hù)名密碼進(jìn)入過(guò)濾特殊字符處理。
(2):使用存儲(chǔ)過(guò)程通過(guò)傳入?yún)?shù)的方法可解決此類(lèi)問(wèn)題(注意:在存儲(chǔ)過(guò)程中不可使用拼接實(shí)現(xiàn),不然和沒(méi)用存儲(chǔ)過(guò)和是一樣的)。
選擇我們,優(yōu)質(zhì)服務(wù),不容錯(cuò)過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò)資源,強(qiáng)大的網(wǎng)站優(yōu)化技術(shù),穩(wěn)定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設(shè)經(jīng)驗(yàn),優(yōu)秀的技術(shù)和設(shè)計(jì)水平,更放心
3. 全程省心服務(wù),不必?fù)?dān)心自己不懂網(wǎng)絡(luò),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話(huà):021-58370032