編寫通用的asp防注入程序
更新時(shí)間:2007年03月12日 00:00:00 作者:
編寫通用的asp防注入程序 選擇自 ph4studio 的 Blog
關(guān)鍵字 編寫通用的asp防注入程序
出處
sql注入被那些菜鳥級(jí)別的所謂黑客高手玩出了滋味,,發(fā)現(xiàn)現(xiàn)在大部分黑客入侵都是基于sql注入實(shí)現(xiàn)的
,哎,,誰(shuí)讓這個(gè)入門容易呢,好了,,不說(shuō)廢話了,,現(xiàn)在我開(kāi)始說(shuō)如果編寫通用的sql防注入程序
一般的http請(qǐng)求不外乎 get 和 post,所以只要我們?cè)谖募羞^(guò)濾所有post或者get請(qǐng)求中的參數(shù)信息中
非法字符即可,所以我們實(shí)現(xiàn)http 請(qǐng)求信息過(guò)濾就可以判斷是是否受到sql注入攻擊。
iis傳遞給asp.dll的get 請(qǐng)求是是以字符串的形式,,當(dāng) 傳遞給Request.QueryString數(shù)據(jù)后,,
asp解析器會(huì)分析Request.QueryString的信息,,然后根據(jù)"&",分出各個(gè)數(shù)組內(nèi)的數(shù)據(jù)
所以get的攔截如下
首先我們定義請(qǐng)求中不能包含如下字符
'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
各個(gè)字符用"|"隔開(kāi),,然后我們判斷的得到的Request.QueryString
具體代碼如下
dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('天下電影聯(lián)盟SQL通用防注入系統(tǒng)提示↓nn請(qǐng)不要在參數(shù)中包含非法字符嘗試注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
這樣我們就實(shí)現(xiàn)了get請(qǐng)求的注入的攔截,但是我們還要過(guò)濾post請(qǐng)求,所以我們還得繼續(xù)考慮request.form,這個(gè)也是以數(shù)組形式存在的,,我們只需要再進(jìn)一次循環(huán)判斷即可。代碼如下
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('天下電影聯(lián)盟SQL通用防注入系統(tǒng)提示↓nn請(qǐng)不要在參數(shù)中包含非法字符嘗試注入!nnHTTP://www.521movie.com ');history.back(-1)</Script>"
Response.end
end if
next
next
end if
好了大功告成,,我們已經(jīng)實(shí)現(xiàn)了get和post請(qǐng)求的信息攔截,,你只需要在conn.asp之類的打開(kāi)數(shù)據(jù)庫(kù)文件之前引用這個(gè)頁(yè)面即可。放心的繼續(xù)開(kāi)發(fā)你的程序,,不用再考慮是否還會(huì)受到sql注入攻擊。難道不是么?
關(guān)鍵字 編寫通用的asp防注入程序
出處
sql注入被那些菜鳥級(jí)別的所謂黑客高手玩出了滋味,,發(fā)現(xiàn)現(xiàn)在大部分黑客入侵都是基于sql注入實(shí)現(xiàn)的
,哎,,誰(shuí)讓這個(gè)入門容易呢,好了,,不說(shuō)廢話了,,現(xiàn)在我開(kāi)始說(shuō)如果編寫通用的sql防注入程序
一般的http請(qǐng)求不外乎 get 和 post,所以只要我們?cè)谖募羞^(guò)濾所有post或者get請(qǐng)求中的參數(shù)信息中
非法字符即可,所以我們實(shí)現(xiàn)http 請(qǐng)求信息過(guò)濾就可以判斷是是否受到sql注入攻擊。
iis傳遞給asp.dll的get 請(qǐng)求是是以字符串的形式,,當(dāng) 傳遞給Request.QueryString數(shù)據(jù)后,,
asp解析器會(huì)分析Request.QueryString的信息,,然后根據(jù)"&",分出各個(gè)數(shù)組內(nèi)的數(shù)據(jù)
所以get的攔截如下
首先我們定義請(qǐng)求中不能包含如下字符
'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare
各個(gè)字符用"|"隔開(kāi),,然后我們判斷的得到的Request.QueryString
具體代碼如下
dim sql_injdata
SQL_injdata = "'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare"
SQL_inj = split(SQL_Injdata,"|")
If Request.QueryString<>"" Then
For Each SQL_Get In Request.QueryString
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.QueryString(SQL_Get),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('天下電影聯(lián)盟SQL通用防注入系統(tǒng)提示↓nn請(qǐng)不要在參數(shù)中包含非法字符嘗試注入!');history.back(-1)</Script>"
Response.end
end if
next
Next
End If
這樣我們就實(shí)現(xiàn)了get請(qǐng)求的注入的攔截,但是我們還要過(guò)濾post請(qǐng)求,所以我們還得繼續(xù)考慮request.form,這個(gè)也是以數(shù)組形式存在的,,我們只需要再進(jìn)一次循環(huán)判斷即可。代碼如下
If Request.Form<>"" Then
For Each Sql_Post In Request.Form
For SQL_Data=0 To Ubound(SQL_inj)
if instr(Request.Form(Sql_Post),Sql_Inj(Sql_DATA))>0 Then
Response.Write "<Script Language=****>alert('天下電影聯(lián)盟SQL通用防注入系統(tǒng)提示↓nn請(qǐng)不要在參數(shù)中包含非法字符嘗試注入!nnHTTP://www.521movie.com ');history.back(-1)</Script>"
Response.end
end if
next
next
end if
好了大功告成,,我們已經(jīng)實(shí)現(xiàn)了get和post請(qǐng)求的信息攔截,,你只需要在conn.asp之類的打開(kāi)數(shù)據(jù)庫(kù)文件之前引用這個(gè)頁(yè)面即可。放心的繼續(xù)開(kāi)發(fā)你的程序,,不用再考慮是否還會(huì)受到sql注入攻擊。難道不是么?
相關(guān)文章
asp連接mysql數(shù)據(jù)庫(kù)詳細(xì)實(shí)現(xiàn)代碼
文章詳細(xì)的介紹在asp中如何來(lái)連接mysql數(shù)據(jù)庫(kù)并查出數(shù)據(jù)并輸出,同時(shí)也介紹了連接mysql核心代碼及中文亂碼解決辦法2012-04-04ASP頁(yè)面靜態(tài)化批量生成代碼分享(多種方法)
最近朋友網(wǎng)站需要將網(wǎng)站生成靜態(tài),但有時(shí)候生成靜態(tài)會(huì)出現(xiàn)問(wèn)題,特多整理了一些方法, 大家可以根據(jù)自己網(wǎng)站需要選擇。2011-05-05ASP checkbox復(fù)選框是否被選中的代碼(結(jié)合數(shù)據(jù)庫(kù))
ASP從數(shù)據(jù)庫(kù)中讀出復(fù)選框是否被選中的代碼2010-06-06被動(dòng)式統(tǒng)計(jì)網(wǎng)站在線人數(shù)
被動(dòng)式統(tǒng)計(jì)網(wǎng)站在線人數(shù)...2006-12-12CreateKeyWord asp實(shí)現(xiàn)的由給定的字符串生成關(guān)鍵字的代碼
CreateKeyWord asp實(shí)現(xiàn)的由給定的字符串生成關(guān)鍵字的代碼...2007-09-09