解讀ASP程序執(zhí)行SQL語(yǔ)句時(shí)防止注入攻擊的問題(2)_ASP教程
教程Tag:暫無(wú)Tag,歡迎添加,賺取U幣!
推薦:揭秘asp常用函數(shù)庫(kù)大全’-----------------FLYSOBlogASP站點(diǎn)開發(fā)常用函數(shù)庫(kù)------------------ ’OpenDB(vdata_url)--------------------打開數(shù)據(jù)庫(kù) ’getIp()-------------------------------得到真實(shí)IP ’getIPAdress(sip)------------------------查找ip對(duì)應(yīng)的真實(shí)地址 ’IP2Num
解決的辦法:
在你使用參數(shù)前,對(duì)參數(shù)進(jìn)行嚴(yán)格檢驗(yàn),尤其是用戶輸入的參數(shù)
不但要對(duì)其數(shù)據(jù)類型,長(zhǎng)度進(jìn)行檢查,還要對(duì)其內(nèi)容進(jìn)行檢查。
我們?cè)倏匆欢未a。(用戶登陸)
username=request("user_name")
pwd=request("pwd")
username=replace(username,"’","’’")
pwd=replace(pwd,"’","’’")
sql="select uid,pwd from account where uid=’" & username & "’ and pwd=’" & pwd "’"
rs.open sql,conn,1,1
if not rs.eof then
response.write rs(0) & "歡迎您,您已登陸成功"
else
response.write "登陸失敗,錯(cuò)誤的用戶名或密碼"
end if
............
以上程序的漏洞是顯而易見的
我們可以以 用戶名: admin 密碼: a’ or ’1’=’1
輕易以admin的賬號(hào)登陸系統(tǒng)
因?yàn)槲覀兊膕ql 變?yōu)榱?
select uid,pwd from account where uid=’admin’ and pwd=’a’ or ’1’=’1’
顯然 uid=’admin’ and pwd=’a’ or ’1’=’1’是恒為成立的所以 rs.eof 為false
正確的寫法應(yīng)為
sql="select uid,pwd from account where uid=’" & username & "’ and pwd=’" & pwd "’"
rs.open sql,conn,1,1
if rs(0)=username and rs(1)=pwd then
response.write rs(0) & "歡迎您,您已登陸成功"
else
response.write "登陸失敗,錯(cuò)誤的用戶名或密碼"
end if
分享:詳解將ASP頁(yè)面改為偽靜態(tài)的簡(jiǎn)單方法目前很多網(wǎng)站都采用生成靜態(tài)頁(yè)的方法,原因是這樣訪問速度會(huì)得到提高(服務(wù)器端CPU利用率很低),另外也容易被搜索引擎收錄,但是這帶來(lái)的一個(gè)問題就是需要足夠大的空間存放這些靜態(tài)頁(yè)面,如果你的空間不是很富裕,而又想有利于被搜索引擎收錄,其實(shí)可以采用偽
相關(guān)ASP教程:
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫(kù)實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過(guò)濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁(yè)模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無(wú)組件分頁(yè)實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-解讀ASP程序執(zhí)行SQL語(yǔ)句時(shí)防止注入攻擊的問題(2)
。