亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于HttpModule的防SQL注入策略

        2017-11-17 05:04:34安靜鑫
        關(guān)鍵詞:實(shí)例屏蔽網(wǎng)頁(yè)

        ◆張 勇 安靜鑫

        (山東輕工職業(yè)學(xué)院信息中心 山東 255300)

        基于HttpModule的防SQL注入策略

        ◆張 勇 安靜鑫

        (山東輕工職業(yè)學(xué)院信息中心 山東 255300)

        SQL注入是入侵Web服務(wù)器最常見(jiàn)的行為,本文提出了基于HttpModule的防注入策略,在HttpModule管道中攔截用戶(hù)請(qǐng)求,用正則表達(dá)式和XML配置信息,分析用戶(hù)請(qǐng)求的合法性,對(duì)非法請(qǐng)求采取中止請(qǐng)求、屏蔽IP等措施,從而防止SQL注入,這種方法具有靈活高效、簡(jiǎn)便易用的特點(diǎn)。

        SQL注入; HttpModule; 用戶(hù)請(qǐng)求過(guò)濾; IP屏蔽

        0 引言

        目前大多數(shù)企事業(yè)單位建設(shè)了本部門(mén)的 Web服務(wù)器,這些服務(wù)器多數(shù)使用Windows Server和asp.net、php等腳本語(yǔ)言架設(shè)網(wǎng)站,經(jīng)過(guò)多年的發(fā)展,網(wǎng)站的布局越來(lái)越合理、功能越來(lái)越完備,但是安全問(wèn)題卻越來(lái)越突出,被攻擊事件層出不窮,有的數(shù)據(jù)被竊取導(dǎo)致嚴(yán)重后果,例如徐玉玉電信詐騙案;有的網(wǎng)頁(yè)被篡改,被鏈接到木馬、游戲和境外網(wǎng)頁(yè)上,造成惡劣影響。

        因此網(wǎng)站管理員越發(fā)重視 Web服務(wù)器安全問(wèn)題,為此采取了諸多防范措施,例如購(gòu)買(mǎi)安全狗、殺毒軟件、加固 Web服務(wù)器、安裝Web防火墻、查找SQL注入漏洞等等,其中防范SQL注入攻擊對(duì)管理員的業(yè)務(wù)水平要求很高,防范難度很大,本文研究重點(diǎn)就是使用HttpModule實(shí)時(shí)檢測(cè)和防范SQL注入攻擊,以達(dá)到保護(hù)Web服務(wù)器的目的。

        由于國(guó)內(nèi)多數(shù)企事業(yè)單位使用windows server和IIS搭建網(wǎng)站,因此本文的研究方法是針對(duì)windows server + IIS+ASP.NET環(huán)境的,但是設(shè)計(jì)思路同樣適合于linux下的apache和Tomcat環(huán)境。

        本文使用的術(shù)語(yǔ)說(shuō)明:

        (1)Web網(wǎng)站:是指假設(shè)在Web服務(wù)器上,供用戶(hù)訪問(wèn)的網(wǎng)頁(yè)集合。

        (2)Web服務(wù)器:是指架設(shè)Web網(wǎng)站的服務(wù)器平臺(tái),因此保護(hù)網(wǎng)站實(shí)際上就是保護(hù)服務(wù)器。

        (3)用戶(hù)請(qǐng)求:是指用戶(hù)使用瀏覽器或其他軟件向Web網(wǎng)站發(fā)出的的http請(qǐng)求,主要分為get和post兩種,請(qǐng)求中包含了用戶(hù)IP、瀏覽器版本、提交的參數(shù)等信息。

        1 防SQL注入攻擊措施

        1.1 現(xiàn)有措施

        目前,Web服務(wù)器防范SQL注入攻擊主要依靠IT公司推出的各種WAF(Web應(yīng)用防護(hù)系統(tǒng)),WAF可分為三類(lèi):

        (1)硬件Web防火墻:部署簡(jiǎn)單,可承受較高的吞吐量,但是價(jià)格昂貴,中小網(wǎng)站負(fù)擔(dān)不起。

        (2)軟件Web防火墻:界面友好,功能比較全面,如掃描惡意木馬文件、防篡改等功能,價(jià)格低廉,但是占用服務(wù)器內(nèi)存較大,軟件兼容不夠好、不夠穩(wěn)定。

        (3)云WAF:部署簡(jiǎn)單,維護(hù)成本低,由于由云端負(fù)責(zé)防護(hù)規(guī)則的更新和維護(hù),用戶(hù)的工作量極少,但是由于所有訪問(wèn)數(shù)據(jù)都會(huì)先經(jīng)過(guò)云端,所以保密性差,不適用于多數(shù)企事業(yè)單位。

        無(wú)論哪一類(lèi)WAF目前都存在一些不足,主要表現(xiàn)在:

        (1)配置功能不夠全面: IT公司提供的產(chǎn)品是通用的,而國(guó)內(nèi)數(shù)以萬(wàn)計(jì)的網(wǎng)站安全要求各不相同,很多個(gè)性化要求無(wú)法滿(mǎn)足,假設(shè)用戶(hù)希望能自定義正則表達(dá)式分析get和post請(qǐng)求的內(nèi)容,這樣的要求目前沒(méi)有哪一款WAF能夠滿(mǎn)足。

        (2)屏蔽IP的功能不足。雖然多數(shù)WAF提供了IP黑名單功能,但主要依靠管理員手動(dòng)添加,防范作用不大,管理員更希望在網(wǎng)站運(yùn)行時(shí),能自動(dòng)屏蔽非法IP,甚至能建立windows防火墻的規(guī)則屏蔽之。

        鑒于上述WAF存在的不足,本文提出了基于HttpModule模塊的SQL防注入策略,它不但可以防御SQL注入,還可以阻止掃描網(wǎng)站,在一定程度上代替了WAF的作用,實(shí)踐證明本策略設(shè)計(jì)的軟件簡(jiǎn)便靈活,過(guò)濾效果顯著。

        1.2 本方法創(chuàng)新點(diǎn)

        本策略創(chuàng)新點(diǎn)如下:

        (1)使用XML文件自定義配置,簡(jiǎn)單靈活。

        (2)動(dòng)態(tài)、實(shí)時(shí)屏蔽非法IP。

        (3)使用正則表達(dá)式過(guò)濾非法請(qǐng)求。

        2 用戶(hù)請(qǐng)求處理流程

        正常情況下,用戶(hù)打開(kāi)一個(gè)網(wǎng)頁(yè)或者點(diǎn)擊鏈接就是在向Web網(wǎng)站發(fā)送若干請(qǐng)求,用戶(hù)請(qǐng)求在IIS服務(wù)器的處理過(guò)程比較復(fù)雜,以下僅作簡(jiǎn)要說(shuō)明。

        當(dāng)用戶(hù)通過(guò)瀏覽器發(fā)送http請(qǐng)求時(shí),該請(qǐng)求會(huì)傳給Web服務(wù)器上的w3wp.exe進(jìn)程,該進(jìn)程構(gòu)造一個(gè)HttpRuntime類(lèi)的實(shí)例,該實(shí)例通過(guò)調(diào)用ProcessRequest方法產(chǎn)生一個(gè)HttpContext實(shí)例,從編程者角度看這是一個(gè)最重要的實(shí)例,因?yàn)榭梢酝ㄟ^(guò)它獲得用戶(hù)請(qǐng)求。之后用戶(hù)請(qǐng)求將通過(guò)一個(gè)“HttpModule模塊管道”,之所以稱(chēng)為管道是因?yàn)橛脩?hù)請(qǐng)求將經(jīng)過(guò)一系列HttpModule模塊,每個(gè)模塊可以攔截用戶(hù)請(qǐng)求進(jìn)行處理。

        “模塊管道”的終點(diǎn)是 HttpHandler,用戶(hù)請(qǐng)求穿過(guò)HttpModule模塊管道后,最后到達(dá)HttpHandle模塊,HttpHandle返回用戶(hù)請(qǐng)求的網(wǎng)頁(yè)內(nèi)容,通過(guò)用戶(hù)瀏覽器解析顯示出來(lái),如圖1所示。

        圖1 模塊管道

        通過(guò)以上描述,得到以下信息:

        (1)可以編寫(xiě)一個(gè)HttpModule模塊,作為“模塊管道”的一部分,它是用戶(hù)請(qǐng)求的必經(jīng)節(jié)點(diǎn)。

        (2)在HttpModule模塊內(nèi),通過(guò)訪問(wèn)HttpContext實(shí)例獲得用戶(hù)請(qǐng)求,然后分析是否存在注入。

        3 設(shè)計(jì)思路

        3.1 獲取用戶(hù)請(qǐng)求

        使用 C#語(yǔ)言編寫(xiě)一個(gè) HttpModule模塊,模塊中必須含有Application_BeginRequest(Object source, EventArgs e)方法,參數(shù)source就是傳遞來(lái)的用戶(hù)請(qǐng)求,在方法中對(duì)它進(jìn)行類(lèi)型轉(zhuǎn)換,語(yǔ)句如下:

        HttpRequest request=((HttpApplication)source).Context.Request,這樣就得到了HttpRequest類(lèi)的實(shí)例request,request中包含了用戶(hù)請(qǐng)求的信息,根據(jù)request的RequestType屬性可知當(dāng)前請(qǐng)求屬于哪一種,本文重點(diǎn)分析get請(qǐng)求,post請(qǐng)求的分析方法類(lèi)似。

        3.2 判斷SQL注入攻擊

        首先要明確SQL注入攻擊的特征是什么。根據(jù)經(jīng)驗(yàn),黑客主要通過(guò)get參數(shù)和post提交兩種方式進(jìn)行SQL注入攻擊,以get參數(shù)方式攻擊為例,具體表現(xiàn)是在get參數(shù)中使用各類(lèi)非法字符,精心構(gòu)造各種sql命令傳遞給Web服務(wù)器,根據(jù)返回的結(jié)果,獲得數(shù)據(jù)庫(kù)或服務(wù)器的敏感信息進(jìn)而控制整個(gè) Web服務(wù)器,這就是SQL注入的實(shí)質(zhì)。

        由此可知,檢查request實(shí)例含有的get參數(shù),就可以判斷當(dāng)前request是否存在SQL攻擊,要檢查的符號(hào)包括:?jiǎn)我?hào)、圓括號(hào)、方括號(hào)、尖括號(hào)、花括號(hào)、星號(hào)、分號(hào)等;要檢查的SQL關(guān)鍵詞包括:select、union、where、javascript、group、administrator、cmdshell、alert等,由于數(shù)量較多,這里不能一一列出,如果get參數(shù)中含有這些符號(hào)或關(guān)鍵詞,就可以認(rèn)定當(dāng)前請(qǐng)求為SQL注入攻擊。

        但是這樣的簡(jiǎn)單檢查誤報(bào)率較高,有時(shí)候合法參數(shù)中也會(huì)含有select,上述檢查會(huì)將這個(gè)合法請(qǐng)求誤判為SQL攻擊,這時(shí)候可以使用正則表達(dá)式進(jìn)一步判斷,例如:.*(select).*(from|where),它表示get參數(shù)中select和from或where同時(shí)存在,才判斷是SQL攻擊,這就大大降低了誤報(bào)率,只是在反應(yīng)時(shí)間上稍慢而已,用戶(hù)幾乎感覺(jué)不到。

        3.3 判斷惡意掃描

        除了SQL注入攻擊,入侵者還經(jīng)常使用掃描工具對(duì)網(wǎng)站進(jìn)行高頻率掃描,網(wǎng)站會(huì)在數(shù)秒內(nèi)接收到來(lái)自某個(gè)IP的上千次的get請(qǐng)求,因此有必要過(guò)濾這些高頻掃描。算法設(shè)計(jì)如下所示:

        (1)首先設(shè)定一個(gè)單位時(shí)間訪問(wèn)上限,規(guī)定本網(wǎng)站每N秒最多允許接收某IP的M個(gè)get請(qǐng)求。

        (2)在HttpModule模塊中定義一個(gè)靜態(tài)變量,用來(lái)記錄每個(gè)IP的訪問(wèn)次數(shù),每收到一個(gè)get請(qǐng)求,就將其IP來(lái)訪次數(shù)加1。

        (3)模塊中定義一個(gè)Timer計(jì)數(shù)器,每隔N秒檢查所有被記錄的IP的訪問(wèn)次數(shù),若發(fā)現(xiàn)某個(gè)IP發(fā)送的請(qǐng)求數(shù)量高于限定值M,就認(rèn)定此IP在掃描網(wǎng)站,應(yīng)該禁止此IP一段時(shí)間。

        需要注意的是,防止高頻掃描可能會(huì)禁止蜘蛛爬蟲(chóng)抓取網(wǎng)頁(yè),影響網(wǎng)站收錄。

        3.4 配置XML

        為了防御變化多端的SQL注入,本策略使用XML實(shí)現(xiàn)靈活配置,XML中應(yīng)該至少含有以下信息。

        (1)SQL注入可能出現(xiàn)的非法符號(hào)、SQL關(guān)鍵詞,例如單引號(hào)、分號(hào)、cmdshell、system32等;

        (2)用來(lái)檢查 SQL注入的正則表達(dá)式集合,例如.*(select).*(from|where);

        (3)異常日志文件路徑、SQL注入的來(lái)源IP記錄日志等;

        (4)用于判斷惡意掃描的時(shí)間間隔和訪問(wèn)次數(shù)上限,例如可以分別設(shè)為60秒和500次;

        (5)被檢查的請(qǐng)求對(duì)象,例如asp、php網(wǎng)頁(yè);

        (6)IP白名單和URL白名單,是指那些不需要檢測(cè)和過(guò)濾的IP和URL集合;

        (7)IP的禁止時(shí)間長(zhǎng)度,可以設(shè)為幾分鐘甚至幾個(gè)小時(shí),最終應(yīng)該解禁。

        3.5 屏蔽非法IP

        屏蔽IP,主要采用兩種方式:

        (1)禁止http訪問(wèn)本網(wǎng)站:檢查每個(gè)請(qǐng)求的來(lái)源IP,若來(lái)自被屏蔽的IP,直接終止請(qǐng)求即可。

        (2)禁止訪問(wèn)本服務(wù)器:通過(guò)執(zhí)行netsh.exe命令,在windows防火墻上添加規(guī)則,例如:netsh advfirewall firewall add rule name="IP1" dir=in action=block remoteIP=24.105.9.201,此命令將徹底禁止24.105.9.201訪問(wèn)Web服務(wù)器。

        3.6 安裝部署和過(guò)濾效果

        (1)軟件安裝

        將上述算法編寫(xiě)的dll文件和XML配置文件一同放置在網(wǎng)站bin目錄下,然后在Web.config中添加如下節(jié)點(diǎn)即可。

        當(dāng)?shù)谝粋€(gè)用戶(hù)請(qǐng)求到來(lái)時(shí),會(huì)從XML文件中讀取信息賦值給一組靜態(tài)變量,以后每當(dāng)用戶(hù)請(qǐng)求到來(lái),不再讀取XML文件,直接根據(jù)靜態(tài)變量的值分析請(qǐng)求的合法性,執(zhí)行速度很快。

        將XML文件放置在網(wǎng)站bin目錄下具有另一個(gè)優(yōu)點(diǎn),每當(dāng)XML發(fā)生改變,ASP.NET就會(huì)自動(dòng)重新加載dll程序,無(wú)需重啟網(wǎng)站和IIS,十分方便。

        (2)過(guò)濾效果

        圖2是dll程序記錄的一部分過(guò)濾日志,分析日志發(fā)現(xiàn),SQL注入攻擊頻繁發(fā)生且變化多端,只有使用正則表達(dá)式才能保證高效全面的過(guò)濾。

        圖2 SQL過(guò)濾日志

        4 結(jié)語(yǔ)

        本文提出的基于HttpModule攔截SQL注入攻擊的方法,靈活高效、簡(jiǎn)便易用,在一定程度上可以替代WAF且完全免費(fèi),適用于基于ASP.NET架構(gòu)的Web服務(wù)器。

        [1] 張慧琳,鄒維.網(wǎng)頁(yè)木馬機(jī)理與防御技術(shù)[J].軟件學(xué)報(bào),2013.

        [2] 王云,郭外萍.Web項(xiàng)目中的SQL注入問(wèn)題研究與防范方法 [J].計(jì)算機(jī)工程與設(shè)計(jì),2010.

        [3] 楊小麗,袁丁等.防SQL注入攻擊的數(shù)據(jù)庫(kù)驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2010.

        [4] 梁玲.網(wǎng)頁(yè)木馬植入與防范技術(shù)研究[J].太原師范學(xué)院學(xué)報(bào)(自然科學(xué)版),2010.

        [5] 黃景文. SQL注入攻擊的一個(gè)新的防范策略[J].微計(jì)算機(jī)信息,2008.

        [6] 陳小兵,張漢煜,駱力明等.SQL注入攻擊及其防范檢測(cè)技術(shù)研究[J].計(jì)算機(jī)工程與應(yīng)用,2007.

        [7] 蔣繼婭,劉彤,王樹(shù)威等.Web應(yīng)用中的SQL注入攻擊與防護(hù)方案研究[J].計(jì)算機(jī)安全,2008.

        [8] 王攻明,吳華瑞等.正則表達(dá)式在電子政務(wù)客戶(hù)端校驗(yàn)中的應(yīng)用[J].計(jì)算機(jī)工程,2007.

        淄博市科技創(chuàng)新項(xiàng)目(編號(hào):2016kj010042);山東輕工職業(yè)學(xué)院院級(jí)項(xiàng)目(編號(hào):2016GC01)。

        猜你喜歡
        實(shí)例屏蔽網(wǎng)頁(yè)
        把生活調(diào)成“屏蔽模式”
        好日子(2022年3期)2022-06-01 06:22:10
        朋友圈被屏蔽,十二星座怎么看
        基于CSS的網(wǎng)頁(yè)導(dǎo)航欄的設(shè)計(jì)
        電子制作(2018年10期)2018-08-04 03:24:38
        滿(mǎn)足CLASS A++屏蔽性能的MINI RG59集束電纜的研發(fā)
        電線電纜(2017年5期)2017-10-18 00:52:04
        基于URL和網(wǎng)頁(yè)類(lèi)型的網(wǎng)頁(yè)信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        幾乎最佳屏蔽二進(jìn)序列偶構(gòu)造方法
        網(wǎng)頁(yè)制作在英語(yǔ)教學(xué)中的應(yīng)用
        完形填空Ⅱ
        完形填空Ⅰ
        10個(gè)必知的網(wǎng)頁(yè)設(shè)計(jì)術(shù)語(yǔ)
        久久综合丝袜日本网| 蜜臀一区二区av天堂| 成人免费播放视频影院| 国产精品久人妻精品老妇| 无套内射无矿码免费看黄| 亚洲一级无码片一区二区三区| 亚洲色图在线视频观看| 国产日产久久高清ww| 人妻少妇偷人精品无码| 无码少妇一级AV便在线观看| 好看午夜一鲁一鲁一鲁| 久久一区二区三区老熟女| 美女脱了内裤张开腿让男人桶网站| 大胆欧美熟妇xxbbwwbw高潮了| 国产精品国产自线拍免费| 国产一区二区三区免费视| 国内精品久久久久影院薰衣草| 日韩精品无码一区二区三区视频 | 无码国产精品一区二区免费网曝| 一区二区免费中文字幕| 天天躁夜夜躁狠狠躁婷婷| 一本色综合久久| 久久99精品中文字幕在| 日韩精品人妻视频一区二区三区 | 特级无码毛片免费视频尤物| 久久久久欧洲AV成人无码国产| 日本在线一区二区三区四区| 日日噜噜夜夜狠狠久久丁香五月| 国产精品熟女一区二区| 日本香蕉久久一区二区视频| 国产亚洲中文字幕久久网| 伊人精品久久久久中文字幕| 国内少妇偷人精品视频免费| 粉嫩av一区二区在线观看| 国产在线一区二区三精品乱码| 97久久精品无码一区二区天美 | 亚洲av无码一区二区乱子仑| 亚洲国产av高清一区二区三区| 国产欧美一区二区精品久久久| 亚洲色偷偷色噜噜狠狠99| 亚洲免费人成网站在线观看|