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 |
這樣我們就實現了get請求的注入的攔截,但是我們還要過濾post請求,所以我們還得繼續考慮request.form,這個也是以數組形式存在的,我們只需要再進一次循環判斷即可。代碼如下:
|
以下為引用的內容: If Request.Form<>"" Then |
好了大功告成,我們已經實現了get和post請求的信息攔截,你只需要在conn.asp之類的打開數據庫文件之前引用這個頁面即可。

RSS訂閱