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