本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種基于PC端的網(wǎng)絡(luò)過(guò)濾方法及客戶端PC。
背景技術(shù):
隨著互聯(lián)網(wǎng)的迅速普及,網(wǎng)絡(luò)內(nèi)容“垃圾”已經(jīng)開始侵入人們的生活,像現(xiàn)在互聯(lián)網(wǎng)上大量的不良信息,已經(jīng)逐漸侵襲到人們的靈魂。對(duì)互聯(lián)網(wǎng)取其精華、去其糟粕,從而保護(hù)自己以及抵御力極差的青少年,已經(jīng)引起人們的關(guān)注,因此,網(wǎng)絡(luò)過(guò)濾技術(shù)孕育而生。
網(wǎng)絡(luò)過(guò)濾技術(shù)采取適當(dāng)?shù)募夹g(shù)措施,對(duì)互聯(lián)網(wǎng)不良信息進(jìn)行過(guò)濾,既可阻止不良信息對(duì)人們的侵害,適應(yīng)社會(huì)對(duì)意識(shí)形態(tài)方面的要求,同時(shí),通過(guò)規(guī)范用戶的上網(wǎng)行為,提高工作效率,合理利用網(wǎng)絡(luò)資源,減少病毒對(duì)網(wǎng)絡(luò)的侵害,這就是網(wǎng)絡(luò)過(guò)濾技術(shù)的根本內(nèi)涵。
目前,基于PC端的網(wǎng)絡(luò)過(guò)濾方法主要有如下兩種:
(1)在應(yīng)用層使用HOOK技術(shù),通過(guò)瀏覽器插件進(jìn)行攔截過(guò)濾。這種方法實(shí)現(xiàn)較容易,效率高,但是容易被反HOOK,查殺、監(jiān)控不全面;
(2)通過(guò)驅(qū)動(dòng)層攔截。這種方法基本能夠監(jiān)控所以網(wǎng)絡(luò)通信,但是開發(fā)成本高,在驅(qū)動(dòng)層進(jìn)行數(shù)據(jù)解析效率低,容易導(dǎo)致藍(lán)屏。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的一種基于PC端的網(wǎng)絡(luò)過(guò)濾方法及客戶端PC,通過(guò)傳輸層的TDI驅(qū)動(dòng)將通信的數(shù)據(jù)請(qǐng)求包和數(shù)據(jù)響應(yīng)包轉(zhuǎn)發(fā)到應(yīng)用層的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序,由處在應(yīng)用層的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序?qū)?shù)據(jù)包相關(guān)信息進(jìn)行分析處理,因此TDI驅(qū)動(dòng)只是起到一個(gè)轉(zhuǎn)發(fā)作用,業(yè)務(wù)簡(jiǎn)單、實(shí)現(xiàn)容易,監(jiān)控全面,效率高。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
一方面,一種基于PC端的網(wǎng)絡(luò)過(guò)濾方法,所述方法應(yīng)用在包括客戶端PC和服務(wù)器的網(wǎng)絡(luò)中,所述客戶端PC通過(guò)互聯(lián)網(wǎng)與所述服務(wù)器通信;所述客戶端PC包括應(yīng)用程序和傳輸層驅(qū)動(dòng)接口TDI驅(qū)動(dòng);所述應(yīng)用程序包括網(wǎng)絡(luò)應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用過(guò)濾程序;所述方法包括:
所述TDI驅(qū)動(dòng)接收應(yīng)用程序向所述服務(wù)器發(fā)送的數(shù)據(jù)包,獲取數(shù)據(jù)包攜帶的進(jìn)程標(biāo)識(shí),判斷所述進(jìn)程標(biāo)識(shí)是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾程序的進(jìn)程標(biāo)識(shí);
如果是,所述TDI驅(qū)動(dòng)將數(shù)據(jù)包發(fā)送給所述服務(wù)器;如果不是,所述TDI驅(qū)動(dòng)將數(shù)據(jù)包轉(zhuǎn)發(fā)給網(wǎng)絡(luò)應(yīng)用過(guò)濾程序進(jìn)行預(yù)處理,所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序?qū)㈩A(yù)處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng);所述TDI驅(qū)動(dòng)將預(yù)處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述服務(wù)器;
所述服務(wù)器將響應(yīng)數(shù)據(jù)包發(fā)送給所述TDI驅(qū)動(dòng);所述TDI驅(qū)動(dòng)將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序進(jìn)行過(guò)濾處理,所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序?qū)⑦^(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng),所述TDI驅(qū)動(dòng)將過(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用程序。
優(yōu)選的,所述TDI驅(qū)動(dòng)接收應(yīng)用程序向所述服務(wù)器發(fā)送的數(shù)據(jù)包,獲取數(shù)據(jù)包攜帶的進(jìn)程標(biāo)識(shí),判斷所述進(jìn)程標(biāo)識(shí)是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾程序的進(jìn)程標(biāo)識(shí)步驟之前,還包括:
所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序的客戶端接收控制參數(shù)設(shè)置請(qǐng)求,獲取預(yù)處理和過(guò)濾處理的控制參數(shù)。
優(yōu)選的,設(shè)置的預(yù)處理控制參數(shù)包括:是否禁用訪問(wèn)網(wǎng)絡(luò)、是否禁用TCP協(xié)議傳輸、是否禁用UDP協(xié)議傳輸和HTTP協(xié)議的URL黑名單。
優(yōu)選的,所述禁用網(wǎng)絡(luò)包括全局?jǐn)嗑W(wǎng)和進(jìn)程斷網(wǎng);所述禁用TCP協(xié)議傳輸包括全局禁用TCP和進(jìn)程禁用TCP;所述禁用UDP協(xié)議傳輸包括全局禁用UDP和進(jìn)程禁用UDP。
優(yōu)選的,所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序進(jìn)行預(yù)處理包括:
步驟a,判斷是否設(shè)置全局?jǐn)嗑W(wǎng),如果有,關(guān)閉連接請(qǐng)求;否則,判斷是否設(shè)置進(jìn)程斷網(wǎng),如果有,關(guān)閉連接請(qǐng)求,否則,執(zhí)行步驟b;
步驟b,判斷傳輸層通信協(xié)議為TCP還是UDP;如果是UDP,執(zhí)行步驟c;如果為TCP,執(zhí)行步驟d;
步驟c,判斷是否設(shè)置全局禁用UDP,如果有設(shè)置,關(guān)閉連接請(qǐng)求;否則,判斷是否設(shè)置進(jìn)程禁用UDP,如果有設(shè)置,關(guān)閉連接請(qǐng)求,否則,數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng);
步驟d,判斷是否設(shè)置全局禁用TCP,如果有設(shè)置,關(guān)閉連接請(qǐng)求;否則,判斷是否設(shè)置進(jìn)程禁用TCP,如果有設(shè)置,關(guān)閉連接請(qǐng)求,否則執(zhí)行步驟e;
步驟e,判斷應(yīng)用層通信協(xié)議是否為HTTP,如果不是,數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng);如果是,執(zhí)行步驟f,
步驟f,解析HTTP數(shù)據(jù)包包頭,根據(jù)設(shè)置的URL黑名單,判斷網(wǎng)址是否允許訪問(wèn),如果不允許訪問(wèn),返回禁止訪問(wèn)網(wǎng)頁(yè)提示并關(guān)閉連接請(qǐng)求,否則,數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)。
優(yōu)選的,設(shè)置的過(guò)濾處理控制參數(shù)包括:過(guò)濾關(guān)鍵字、替換關(guān)鍵字、過(guò)濾圖片和替換圖片。
優(yōu)選的,所述過(guò)濾處理包括:
解析數(shù)據(jù)包;查找數(shù)據(jù)包中包括的所述過(guò)濾關(guān)鍵字和所述過(guò)濾圖片,并替代成對(duì)應(yīng)的替換關(guān)鍵字和替換圖片。
本發(fā)明一種基于PC端的網(wǎng)絡(luò)過(guò)濾方法,當(dāng)應(yīng)用層有任何網(wǎng)絡(luò)活動(dòng)時(shí),數(shù)據(jù)包通過(guò)socket往下傳送,到達(dá)TDI驅(qū)動(dòng)層時(shí),TDI驅(qū)動(dòng)會(huì)根據(jù)發(fā)送方的進(jìn)程標(biāo)識(shí)判斷是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾程序的進(jìn)程標(biāo)識(shí),如果是則直接往下傳給網(wǎng)絡(luò)驅(qū)動(dòng)接口規(guī)范NDIS驅(qū)動(dòng),再通過(guò)物理網(wǎng)卡發(fā)送給服務(wù)器,若發(fā)送方的進(jìn)程標(biāo)識(shí)不是網(wǎng)絡(luò)應(yīng)用過(guò)濾程序的進(jìn)程標(biāo)識(shí)則把IP數(shù)據(jù)包發(fā)往網(wǎng)絡(luò)應(yīng)用過(guò)濾程序進(jìn)行預(yù)處理,從而實(shí)現(xiàn)斷網(wǎng)及網(wǎng)址過(guò)濾等網(wǎng)絡(luò)監(jiān)控操作;當(dāng)TDI驅(qū)動(dòng)通過(guò)NDIS驅(qū)動(dòng)接收到服務(wù)器的響應(yīng)數(shù)據(jù)包時(shí),發(fā)送給網(wǎng)絡(luò)應(yīng)用過(guò)濾程序進(jìn)行關(guān)鍵字過(guò)濾、關(guān)鍵字替換、圖片過(guò)濾和圖片替換等操作。
依據(jù)本發(fā)明的另一個(gè)方面,提供了一種客戶端PC,應(yīng)用在包括客戶端PC和服務(wù)器的網(wǎng)絡(luò)中,所述客戶端PC通過(guò)互聯(lián)網(wǎng)與所述服務(wù)器通信;所述客戶端PC包括應(yīng)用模塊和傳輸層驅(qū)動(dòng)接口TDI驅(qū)動(dòng)模塊;所述應(yīng)用模塊包括網(wǎng)絡(luò)應(yīng)用模塊和網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊;所述網(wǎng)絡(luò)應(yīng)用模塊,用于發(fā)送請(qǐng)求數(shù)據(jù)包;
所述TDI驅(qū)動(dòng)模塊,用于接收應(yīng)用模塊向所述服務(wù)器發(fā)送的數(shù)據(jù)包,獲取數(shù)據(jù)包攜帶的進(jìn)程標(biāo)識(shí),判斷所述進(jìn)程標(biāo)識(shí)是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊的進(jìn)程標(biāo)識(shí),如果是,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述服務(wù)器,如果不是,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊;還用于接收服務(wù)器向所述網(wǎng)絡(luò)應(yīng)用模塊發(fā)送的響應(yīng)數(shù)據(jù)包;
所述網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊,用于對(duì)所述網(wǎng)絡(luò)應(yīng)用模塊的請(qǐng)求數(shù)據(jù)包和對(duì)應(yīng)的響應(yīng)數(shù)據(jù)包進(jìn)行分析處理,包括控制參數(shù)設(shè)置單元、預(yù)處理單元和過(guò)濾處理單元;
所述控制參數(shù)設(shè)置單元,用于設(shè)置是否禁用訪問(wèn)網(wǎng)絡(luò)、是否禁用TCP協(xié)議傳輸、是否禁用UDP協(xié)議傳輸、HTTP協(xié)議的URL黑名單、過(guò)濾關(guān)鍵字、替換關(guān)鍵字、過(guò)濾圖片和替換圖片;
所述預(yù)處理單元,用于根據(jù)所述控制參數(shù)設(shè)置單元設(shè)置的參數(shù)對(duì)所述TDI驅(qū)動(dòng)模塊轉(zhuǎn)發(fā)的請(qǐng)求數(shù)據(jù)包進(jìn)行預(yù)處理;預(yù)處理完成后,將預(yù)處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊;
所述過(guò)濾處理單元,用于根據(jù)所述控制參數(shù)設(shè)置單元設(shè)置的參數(shù)對(duì)所述TDI驅(qū)動(dòng)模塊轉(zhuǎn)發(fā)的響應(yīng)數(shù)據(jù)包進(jìn)行過(guò)濾處理;過(guò)濾處理完成后,將過(guò)濾處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊。
優(yōu)選的,所述預(yù)處理,具體包括:
判斷如果設(shè)置了全局?jǐn)嗑W(wǎng)或進(jìn)程斷網(wǎng),則關(guān)閉連接請(qǐng)求;否則,進(jìn)行傳輸層通信協(xié)議的判斷;
判斷如果傳輸層通信協(xié)議為UDP,進(jìn)一步判斷如果設(shè)置了全局禁用UDP或進(jìn)程禁用UDP,則關(guān)閉連接請(qǐng)求;否則,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊;
判斷如果傳輸層通信協(xié)議為TCP,進(jìn)一步判斷如果設(shè)置了全局禁用TCP或進(jìn)程禁用TCP,則關(guān)閉連接請(qǐng)求;否則,進(jìn)一步判斷應(yīng)用層通信協(xié)議是否為HTTP,如果不是,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊;如果是,解析HTTP數(shù)據(jù)包包頭,根據(jù)設(shè)置的URL黑名單,判斷網(wǎng)址是否允許訪問(wèn),如果不允許訪問(wèn),返回禁止訪問(wèn)網(wǎng)頁(yè)提示并關(guān)閉連接請(qǐng)求,否則,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊。
優(yōu)選的,所述過(guò)濾處理,具體包括:
解析數(shù)據(jù)包;查找數(shù)據(jù)包中包括的所述過(guò)濾關(guān)鍵字和所述過(guò)濾圖片,替代成對(duì)應(yīng)的替換關(guān)鍵字和替換圖片。
本發(fā)明提供的技術(shù)方案帶來(lái)的有益效果是:
1、本發(fā)明的方法通過(guò)傳輸層的TDI驅(qū)動(dòng)將通信的數(shù)據(jù)請(qǐng)求包和數(shù)據(jù)響應(yīng)包轉(zhuǎn)發(fā)到應(yīng)用層的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序,由處在應(yīng)用層的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序?qū)?shù)據(jù)包相關(guān)信息進(jìn)行分析處理,因此TDI驅(qū)動(dòng)只是起到一個(gè)轉(zhuǎn)發(fā)作用,業(yè)務(wù)簡(jiǎn)單、實(shí)現(xiàn)容易,監(jiān)控全面,效率高;
2、本發(fā)明的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序易于擴(kuò)展,針對(duì)各種網(wǎng)絡(luò)協(xié)議都可以進(jìn)行解析和過(guò)濾。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚地了解本發(fā)明的技術(shù)手段,從而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下列舉本發(fā)明的具體實(shí)施方式。
根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述及其他目的、優(yōu)點(diǎn)和特征。
附圖說(shuō)明
圖1為本發(fā)明方法實(shí)施例的流程圖;
圖2為本發(fā)明方法實(shí)施例的網(wǎng)絡(luò)驅(qū)動(dòng)的結(jié)構(gòu)圖;
圖3為本發(fā)明方法實(shí)施例的請(qǐng)求消息的網(wǎng)絡(luò)流程圖;
圖4為本發(fā)明方法實(shí)施例的響應(yīng)消息的網(wǎng)絡(luò)流程圖;
圖5為本發(fā)明方法實(shí)施例的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序的處理流程圖;
圖6為本發(fā)明客戶端PC實(shí)施例的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步的詳細(xì)描述。
如圖1所示為本發(fā)明方法實(shí)施例的流程圖,如圖2所示為本發(fā)明方法實(shí)施例的網(wǎng)絡(luò)驅(qū)動(dòng)的結(jié)構(gòu)圖,如圖3所示為本發(fā)明方法實(shí)施例的請(qǐng)求消息的網(wǎng)絡(luò)流程圖,如圖4所示為本發(fā)明方法實(shí)施例的響應(yīng)消息的網(wǎng)絡(luò)流程圖。本實(shí)施例的執(zhí)行主體為客戶端PC 2機(jī),如圖1所示,所述方法應(yīng)用在包括客戶端PC 2和服務(wù)器3的網(wǎng)絡(luò)中,所述客戶端PC 2通過(guò)互聯(lián)網(wǎng)與所述服務(wù)器3通信;所述客戶端PC 2包括應(yīng)用程序20和傳輸層驅(qū)動(dòng)接口TDI驅(qū)動(dòng)21;所述應(yīng)用程序20包括網(wǎng)絡(luò)應(yīng)用程序201和網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202(所述客戶端PC 2機(jī)上安裝有網(wǎng)絡(luò)應(yīng)用程序201,此外還安裝有用于對(duì)網(wǎng)絡(luò)應(yīng)用程序請(qǐng)求數(shù)據(jù)包和對(duì)應(yīng)的響應(yīng)數(shù)據(jù)包進(jìn)行分析處理的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202和TDI驅(qū)動(dòng)21);所述方法包括:
步驟101,所述TDI驅(qū)動(dòng)21接收應(yīng)用程序20向所述服務(wù)器3發(fā)送的數(shù)據(jù)包,獲取數(shù)據(jù)包攜帶的進(jìn)程標(biāo)識(shí),判斷所述進(jìn)程標(biāo)識(shí)是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202的進(jìn)程標(biāo)識(shí);
具體的,如圖2所示為本發(fā)明方法實(shí)施例的網(wǎng)絡(luò)驅(qū)動(dòng)的結(jié)構(gòu)圖,本發(fā)明進(jìn)程標(biāo)識(shí)的獲取是在TDI驅(qū)動(dòng)21完成的。Windows操作系統(tǒng)網(wǎng)絡(luò)驅(qū)動(dòng)包括傳輸層驅(qū)動(dòng)接口(Transport Driver Interface,簡(jiǎn)稱TDI)驅(qū)動(dòng)和網(wǎng)絡(luò)驅(qū)動(dòng)接口規(guī)范(Network Driver Interface Specification,簡(jiǎn)稱NDIS)NDIS驅(qū)動(dòng)22,其中,NDIS又可分為NDIS協(xié)議驅(qū)動(dòng)、NDIS中間層驅(qū)動(dòng)和NDIS網(wǎng)卡驅(qū)動(dòng)。NDIS協(xié)議驅(qū)動(dòng)實(shí)現(xiàn)具體的網(wǎng)絡(luò)協(xié)議,NDIS網(wǎng)卡驅(qū)動(dòng)實(shí)現(xiàn)對(duì)物理網(wǎng)卡23的操作,NDIS中間層驅(qū)動(dòng)位于NDIS網(wǎng)卡驅(qū)動(dòng)程序和NDIS協(xié)議驅(qū)動(dòng)程序之間,它向上提供小端口函數(shù)集,向下提供協(xié)議函數(shù)集,因此對(duì)于上層驅(qū)動(dòng)程序而言,它是小端口驅(qū)動(dòng)程序;對(duì)于底層的驅(qū)動(dòng),它是協(xié)議驅(qū)動(dòng)程序。
步驟102,如果是,所述TDI驅(qū)動(dòng)21將數(shù)據(jù)包發(fā)送給所述服務(wù)器3;如果不是,所述TDI驅(qū)動(dòng)21將數(shù)據(jù)包轉(zhuǎn)發(fā)給網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202進(jìn)行預(yù)處理,所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202將預(yù)處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21;所述TDI驅(qū)動(dòng)21將預(yù)處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述服務(wù)器3。
具體的,如圖3所示,當(dāng)網(wǎng)絡(luò)應(yīng)用程序201發(fā)起網(wǎng)絡(luò)請(qǐng)求時(shí),數(shù)據(jù)包首先傳輸?shù)絋DI驅(qū)動(dòng)21,TDI驅(qū)動(dòng)21會(huì)根據(jù)數(shù)據(jù)包所屬的進(jìn)程標(biāo)識(shí),顯然此時(shí)的進(jìn)程標(biāo)識(shí)不屬于網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202。這這樣的話,所述TDI驅(qū)動(dòng)21會(huì)將數(shù)據(jù)包轉(zhuǎn)發(fā)給網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202進(jìn)行預(yù)處理,預(yù)處理完成后,網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202將數(shù)據(jù)包轉(zhuǎn)發(fā)給TDI驅(qū)動(dòng)21,此時(shí),TDI驅(qū)動(dòng)21判斷出進(jìn)程標(biāo)識(shí)為網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202的進(jìn)程標(biāo)識(shí),因此將數(shù)據(jù)包轉(zhuǎn)發(fā)給NDIS驅(qū)動(dòng),NDIS驅(qū)動(dòng)再通過(guò)物理網(wǎng)卡23將數(shù)據(jù)包發(fā)送給服務(wù)器3。
步驟103,所述TDI驅(qū)動(dòng)21接收所述服務(wù)器3返回的響應(yīng)數(shù)據(jù)包,并將所述響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202進(jìn)行過(guò)濾處理,所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202將過(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21,所述TDI驅(qū)動(dòng)21將過(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用程序201。
具體的,如圖4所示,所述NDIS驅(qū)動(dòng)通過(guò)物理網(wǎng)卡23接收服務(wù)器3返回的響應(yīng)數(shù)據(jù)包,并轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21,所述TDI驅(qū)動(dòng)21將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202進(jìn)行過(guò)濾出來(lái),過(guò)濾處理完成后,再將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21,TDI驅(qū)動(dòng)21再將過(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用程序201。
進(jìn)一步的,所述TDI驅(qū)動(dòng)21接收應(yīng)用程序20向所述服務(wù)器3發(fā)送的數(shù)據(jù)包,獲取數(shù)據(jù)包攜帶的進(jìn)程標(biāo)識(shí),判斷所述進(jìn)程標(biāo)識(shí)是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202的進(jìn)程標(biāo)識(shí)步驟之前,還包括:
在所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202的客戶端預(yù)先設(shè)置好控制參數(shù),包括:是否禁用訪問(wèn)網(wǎng)絡(luò)(全局?jǐn)嗑W(wǎng)和進(jìn)程斷網(wǎng))、是否禁用TCP協(xié)議傳輸(全局禁用TCP和進(jìn)程禁用TCP)、是否禁用UDP協(xié)議傳輸(全局禁用UDP和進(jìn)程禁用UDP)、設(shè)置HTTP協(xié)議的URL黑名單、設(shè)置HTTP協(xié)議內(nèi)容的過(guò)濾關(guān)鍵字、設(shè)置是否過(guò)濾HTTP協(xié)議中的黃色圖片,以及對(duì)過(guò)濾關(guān)鍵字進(jìn)行替換的關(guān)鍵字和對(duì)黃色圖片進(jìn)行替換的普通圖片。具體的,設(shè)置的預(yù)處理控制參數(shù)包括:是否禁用訪問(wèn)網(wǎng)絡(luò)、是否禁用TCP協(xié)議傳輸、是否禁用UDP協(xié)議傳輸和HTTP協(xié)議的URL黑名單。設(shè)置的過(guò)濾處理控制參數(shù)包括:過(guò)濾關(guān)鍵字、替換關(guān)鍵字、過(guò)濾圖片和替換圖片。
進(jìn)一步的,如圖5所示為本發(fā)明方法實(shí)施例的網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202的處理流程圖,整個(gè)流程包括了預(yù)處理和過(guò)濾處理。
具體的,當(dāng)網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202接收到TDI驅(qū)動(dòng)21轉(zhuǎn)發(fā)的請(qǐng)求數(shù)據(jù)包時(shí)進(jìn)行預(yù)處理,預(yù)處理過(guò)程包括:
步驟a,判斷是否設(shè)置全局?jǐn)嗑W(wǎng),如果有,關(guān)閉連接請(qǐng)求;否則,判斷是否設(shè)置進(jìn)程斷網(wǎng),如果有,關(guān)閉連接請(qǐng)求,否則,執(zhí)行步驟b;
步驟b,判斷傳輸層通信協(xié)議為TCP還是UDP;如果是UDP,執(zhí)行步驟c;如果為TCP,執(zhí)行步驟d;
步驟c,判斷是否設(shè)置全局禁用UDP,如果有設(shè)置,關(guān)閉連接請(qǐng)求;否則,判斷是否設(shè)置進(jìn)程禁用UDP,如果有設(shè)置,關(guān)閉連接請(qǐng)求,否則,數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21;
步驟d,判斷是否設(shè)置全局禁用TCP,如果有設(shè)置,關(guān)閉連接請(qǐng)求;否則,判斷是否設(shè)置進(jìn)程禁用TCP,如果有設(shè)置,關(guān)閉連接請(qǐng)求,否則執(zhí)行步驟e;
步驟e,判斷應(yīng)用層通信協(xié)議是否為HTTP,如果不是,數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21;如果是,執(zhí)行步驟f,
步驟f,解析HTTP數(shù)據(jù)包包頭,根據(jù)設(shè)置的URL黑名單,判斷網(wǎng)址是否允許訪問(wèn),如果不允許訪問(wèn),返回“禁止訪問(wèn)網(wǎng)頁(yè)”提示并關(guān)閉連接請(qǐng)求,否則,數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21。
具體的,如果訪問(wèn)URL允許訪問(wèn),則網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202接收到TDI驅(qū)動(dòng)21轉(zhuǎn)發(fā)的服務(wù)器3端返回的網(wǎng)頁(yè)內(nèi)容數(shù)據(jù)包時(shí),進(jìn)行過(guò)濾處理,過(guò)濾處理包括:
解析數(shù)據(jù)包;查找數(shù)據(jù)包中包括的所述過(guò)濾關(guān)鍵字和所述過(guò)濾圖片,并替代成對(duì)應(yīng)的替換關(guān)鍵字和替換圖片。
過(guò)濾處理完成后,所述網(wǎng)絡(luò)應(yīng)用過(guò)濾程序202將過(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)21,所述TDI驅(qū)動(dòng)21將過(guò)濾處理后的響應(yīng)數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用程序201。
圖6為本發(fā)明客戶端PC 2實(shí)施例的結(jié)構(gòu)示意圖,如圖6所示,一種客戶端PC 2,應(yīng)用在包括客戶端PC 2和服務(wù)器3的網(wǎng)絡(luò)中,所述客戶端PC 2通過(guò)互聯(lián)網(wǎng)與所述服務(wù)器3通信;所述客戶端PC 2包括應(yīng)用模塊60、傳輸層驅(qū)動(dòng)接口TDI驅(qū)動(dòng)模塊61、NDIS驅(qū)動(dòng)模塊62和物理網(wǎng)卡模塊63;所述應(yīng)用模塊60包括網(wǎng)絡(luò)應(yīng)用模塊601和網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊602;具體的:
所述網(wǎng)絡(luò)應(yīng)用模塊601,用于發(fā)送請(qǐng)求數(shù)據(jù)包;
所述TDI驅(qū)動(dòng)模塊61,用于接收應(yīng)用模塊60向所述服務(wù)器3發(fā)送的數(shù)據(jù)包,獲取數(shù)據(jù)包攜帶的進(jìn)程標(biāo)識(shí),判斷所述進(jìn)程標(biāo)識(shí)是否為網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊602的進(jìn)程標(biāo)識(shí),如果是,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述服務(wù)器3,如果不是,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊602;還用于接收服務(wù)器3向所述網(wǎng)絡(luò)應(yīng)用模塊601發(fā)送的響應(yīng)數(shù)據(jù)包;
所述網(wǎng)絡(luò)應(yīng)用過(guò)濾模塊602,用于對(duì)所述網(wǎng)絡(luò)應(yīng)用模塊601的請(qǐng)求數(shù)據(jù)包和對(duì)應(yīng)的響應(yīng)數(shù)據(jù)包進(jìn)行分析處理,包括控制參數(shù)設(shè)置單元6021、預(yù)處理單元6022和過(guò)濾處理單元6023;
所述控制參數(shù)設(shè)置單元6021,用于設(shè)置是否禁用訪問(wèn)網(wǎng)絡(luò)、是否禁用TCP協(xié)議傳輸、是否禁用UDP協(xié)議傳輸、HTTP協(xié)議的URL黑名單、過(guò)濾關(guān)鍵字、替換關(guān)鍵字、過(guò)濾圖片和替換關(guān)鍵字;
所述預(yù)處理單元6022,用于根據(jù)所述控制參數(shù)設(shè)置單元設(shè)置的參數(shù)對(duì)所述TDI驅(qū)動(dòng)模塊61轉(zhuǎn)發(fā)的請(qǐng)求數(shù)據(jù)包進(jìn)行預(yù)處理;預(yù)處理完成后,將預(yù)處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊61;
所述過(guò)濾處理單元6023,用于根據(jù)所述控制參數(shù)設(shè)置單元設(shè)置的參數(shù)對(duì)所述TDI驅(qū)動(dòng)模塊61轉(zhuǎn)發(fā)的響應(yīng)數(shù)據(jù)包進(jìn)行過(guò)濾處理;過(guò)濾處理完成后,將過(guò)濾處理后的數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊61。
判斷如果設(shè)置了全局?jǐn)嗑W(wǎng)或進(jìn)程斷網(wǎng),則關(guān)閉連接請(qǐng)求;否則,進(jìn)行傳輸層通信協(xié)議的判斷;
判斷如果傳輸層通信協(xié)議為UDP,進(jìn)一步判斷如果設(shè)置了全局禁用UDP或進(jìn)程禁用UDP,則關(guān)閉連接請(qǐng)求;否則,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊61;
判斷如果傳輸層通信協(xié)議為TCP,進(jìn)一步判斷如果設(shè)置了全局禁用TCP或進(jìn)程禁用TCP,則關(guān)閉連接請(qǐng)求;否則,進(jìn)一步判斷應(yīng)用層通信協(xié)議是否為HTTP,如果不是,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊61;如果是,解析HTTP數(shù)據(jù)包包頭,根據(jù)設(shè)置的URL黑名單,判斷網(wǎng)址是否允許訪問(wèn),如果不允許訪問(wèn),返回禁止訪問(wèn)網(wǎng)頁(yè)提示并關(guān)閉連接請(qǐng)求,否則,將數(shù)據(jù)包轉(zhuǎn)發(fā)給所述TDI驅(qū)動(dòng)模塊61。
優(yōu)選的,所述過(guò)濾處理,具體包括:
解析數(shù)據(jù)包;查找數(shù)據(jù)包中包括的所述過(guò)濾關(guān)鍵字和所述過(guò)濾圖片,并替代成對(duì)應(yīng)的替換關(guān)鍵字和替換圖片。
上述說(shuō)明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚地了解本發(fā)明的技術(shù)手段,從而可依照說(shuō)明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下列舉本發(fā)明的具體實(shí)施方式。
以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。