如何編寫通用的ASP防SQL注入攻擊程序
來源:易賢網(wǎng) 閱讀:672 次 日期:2014-09-10 16:19:44
溫馨提示:易賢網(wǎng)小編為您整理了“如何編寫通用的ASP防SQL注入攻擊程序”,方便廣大網(wǎng)友查閱!

SQL注入被那些菜鳥級(jí)別的所謂黑客高手玩出了滋味,發(fā)現(xiàn)現(xiàn)在大部分黑客入侵都是基于SQL注入實(shí)現(xiàn)的,哎,誰讓這個(gè)入門容易呢,好了,不說廢話了,現(xiàn)在我開始說如果編寫通用的SQL防注入程序一般的http請(qǐng)求不外乎get 和 post,所以只要我們?cè)谖募羞^濾所有post或者get請(qǐng)求中的參數(shù)信息中非法字符即可,所以我們實(shí)現(xiàn)http 請(qǐng)求信息過濾就可以判斷是是否受到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è)字符用"|"隔開,,然后我們判斷的得到的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)求的注入的攔截,但是我們還要過濾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之類的打開數(shù)據(jù)庫文件之前引用這個(gè)頁面即可。放心的繼續(xù)開發(fā)你的程序,不用再考慮是否還會(huì)受到SQL注入攻擊。難道不是么?

更多信息請(qǐng)查看IT技術(shù)專欄

更多信息請(qǐng)查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:如何編寫通用的ASP防SQL注入攻擊程序
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報(bào)名

  • 報(bào)班類型
  • 姓名
  • 手機(jī)號(hào)
  • 驗(yàn)證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢 | 簡(jiǎn)要咨詢須知 | 加入群交流 | 手機(jī)站點(diǎn) | 投訴建議
工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號(hào):hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報(bào)警專用圖標(biāo)