国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

如何編寫通用的ASP防SQL注入攻擊程序

2019-11-18 16:26:48
字體:
來源:轉載
供稿:網友

  SQL注入被那些菜鳥級別的所謂黑客高手玩出了滋味,發現現在大部分黑客入侵都是基于SQL注入實現的,哎,誰讓這個入門容易呢,好了,不說廢話了,現在我開始說如果編寫通用的SQL防注入程序一般的http請求不外乎get 和 post,所以只要我們在文件中過濾所有post或者get請求中的參數信息中非法字符即可,所以我們實現http 請求信息過濾就可以判斷是是否受到SQL注入攻擊。

  IIS傳遞給asp.dll的get 請求是是以字符串的形式,,當 傳遞給Request.QueryString數據后,asp解析器會分析Request.QueryString的信息,,然后根據"&",分出各個數組內的數據所以get的攔截如下:

  首先我們定義請求中不能包含如下字符:

'|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare 

  各個字符用"|"隔開,,然后我們判斷的得到的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('天下電影聯盟SQL通用防注入系統提示↓nn請不要在參數中包含非法字符嘗試注入!');history.back(-1)</Script>"
    Response.end
   end if
  next
 Next
End If 

  這樣我們就實現了get請求的注入的攔截,但是我們還要過濾post請求,所以我們還得繼續考慮request.form,這個也是以數組形式存在的,我們只需要再進一次循環判斷即可。代碼如下:

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('天下電影聯盟SQL通用防注入系統提示↓nn請不要在參數中包含非法字符嘗試注入!nnHTTP://www.521movie.com ');history.back(-1)</Script>"
    Response.end
   end if
  next
 next
end if 

  好了大功告成,我們已經實現了get和post請求的信息攔截,你只需要在conn.asp之類的打開數據庫文件之前引用這個頁面即可。放心的繼續開發你的程序,不用再考慮是否還會受到SQL注入攻擊。難道不是么?


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 富裕县| 虹口区| 茶陵县| 泾源县| 黔西| 祁阳县| 鹿泉市| 壤塘县| 汨罗市| 青河县| 西丰县| 临沂市| 修武县| 涟源市| 沂源县| 明光市| 来安县| 宜州市| 宁化县| 吐鲁番市| 嘉兴市| 罗城| 仪陇县| 克什克腾旗| 建平县| 若羌县| 阿巴嘎旗| 怀集县| 合川市| 仲巴县| 吐鲁番市| 方山县| 香港 | 香港| 塔河县| 察雅县| 孝义市| 隆子县| 德令哈市| 福鼎市| 新晃|