本發(fā)明涉及通信技術領域,尤其涉及一種web認證下的用戶訪問網絡的方法和系統(tǒng)。
背景技術:
在現有技術中對于用戶訪問網絡時,訪問數據包的截獲以及解析主要基于傳輸驅動程序接口TDI(Trandport Driver Interface)建立過濾驅動程序。TDI是指Windows系統(tǒng)中所使用的各種運輸層協議與應用層的接發(fā)數據包軟件之間的接口層。工作在傳輸層的過濾驅動程序可以通過創(chuàng)建新的設備對象,直接關聯到已有的網絡層驅動程序之上,這時應用程序或者其它驅動程序可以通過使用這個設備對象,首先映射到傳輸層中自定義的過濾驅動中,繼而由該驅動傳遞給原本來的設備對象。
在開發(fā)TDI過濾驅動時,可以用IoAttachDeviceToDeviceStack或IoAttachDevice函數將自己所開發(fā)的驅動直接掛載在TCP/IP協議驅動程序的上面。當Windows系統(tǒng)中的應用程序要同底層驅動進行通信,需要調用通信相關的API函數,系統(tǒng)會根據所調用的不同的API函數產生各自的IRP請求,因此TDI過濾驅動程序可以通過截獲IRP請求,繼而通過對IRP的處理從而實現數據包的攔截與分析過濾的功能。這種方法優(yōu)點是可以得到到與驅動程序進行通信的應用程序進程的具體信息。缺點是傳輸層過濾驅動位于TCP/IP協議之上,所以無法截獲那些能夠通過TCP/IP直接進行處理的網絡封包,而且必須重新啟動Windows操作性,自定義的傳輸層過濾驅動才能生效。
技術實現要素:
本發(fā)明的實施例提供了一種web認證下的用戶訪問網絡的方法和系統(tǒng),本發(fā)明提供了如下方案:
基于網絡驅動程序接口規(guī)范NDIS寫入驅動程序,所述驅動程序用于:
捕獲用戶請求web認證的網絡數據包;
解析所述網絡數據包,獲取所述用戶的源IP地址;
判斷所述用戶的源IP地址是否在放行的白名單中;
若在,則在web認證有效時間到期后仍然放行所述用戶訪問,
若不在,則在web認證有效時間到期后拒絕所述用戶訪問。
根據本發(fā)明的上述方法,所述驅動程序用于:
對通過web認證的用戶,在web認證有效時間內允許所述用戶訪問網絡。
根據本發(fā)明的上述方法,所述驅動程序在用于捕獲用戶請求web認證的網絡數據包之前,還用于:
下載并加載最新版本的放行白名單數據包,并解析生成IP地址集合的放行白名單。
根據本發(fā)明的上述方法,所述驅動程序在下載并加載最新版本的放行白名單數據包之前,還用于:
將更新的最新版本的放行白名單上傳至服務器。
根據本發(fā)明的上述方法,所述驅動程序還用于:
對于不在所述放行白名單中的IP地址,生成審計信息并上傳至服務器。
根據本發(fā)明的另一方面,還提供一種web認證下的用戶訪問網絡的系統(tǒng),包括:驅動模塊,其運行基于網絡驅動程序接口規(guī)范NDIS寫入的驅動程序,所述驅動模塊包括:
捕獲組件:其用于捕獲用戶請求web認證的網絡數據包;
解析組件:其用于解析所述網絡數據包,獲取所述用戶的源IP地址;
判斷組件:其用于判斷所述用戶的源IP地址是否在放行的白名單中;
執(zhí)行組件:其用于當所述數據包中的源IP地址在放行的白名單中,則在web認證有效時間到期后仍然放行所述用戶訪問,
當所述數據包中的源IP地址不在放行的白名單中,則在web認證有效時間到期后拒絕所述用戶訪問。
根據本發(fā)明的另一方面,所述驅動模塊,還包括認證組件,其用于:
對通過web認證的用戶,在web認證有效時間內允許所述用戶訪問網絡。
根據本發(fā)明的另一方面,所述驅動模塊,還包括下載組件,其用于:在用于捕獲用戶請求web認證的網絡數據包之前,下載并加載最新版本的放行白名單數據包,并解析生成IP地址集合的放行白名單。
根據本發(fā)明的另一方面,所述驅動模塊,還包括上傳組件,其用于在下載并加載最新版本的放行白名單數據包之前,將更新的最新版本的放行白名單上傳至服務器。
根據本發(fā)明的另一方面,所述上傳組件還用于:對于不在所述放行白名單中的IP地址,生成審計信息并上傳至服務器。
由上述本發(fā)明的實施例提供的技術方案可以看出,本發(fā)明實施例基于網絡驅動程序接口規(guī)范NDIS寫入驅動程序,所述驅動程序用于:捕獲用戶請求web認證的網絡數據包;解析所述網絡數據包,獲取所述用戶的源IP地址;判斷所述用戶的源IP地址是否在放行的白名單中;若在,則在web認證有效時間到期后仍然放行所述用戶訪問,若不在,則在web認證有效時間到期后拒絕所述用戶訪問。能夠攔截較為底層的數據包,數據包的攔截率比較高,能夠攔截幾乎所有的數據包,因此具有較高的安全系數。
附圖說明
為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例一提供的一種web認證下的用戶訪問網絡的方法的處理流程圖;
圖2為發(fā)明實施例二提供的一種web認證下的用戶訪問網絡的系統(tǒng)的系統(tǒng)模塊圖。
具體實施方式
為便于對本發(fā)明實施例的理解,下面將結合附圖以幾個具體實施例為例做進一步的解釋說明,且各個實施例并不構成對本發(fā)明實施例的限定。
實施例一
該實施例提供了一種web認證下的用戶訪問網絡的方法的處理流程如圖1所示,其基于網絡驅動程序接口規(guī)范NDIS寫入驅動程序,具體包括如下步驟:
步驟11、捕獲用戶請求web認證的網絡數據包;
本實施例中采用如下語句實現網絡數據包捕獲,具體地,
string strUrl=NCSI_TEXT_URL,strResponse="";
httpclient->Get(strUrl,strResponse);
步驟12、解析所述網絡數據包,獲取所述用戶的源IP地址;
CURLcode res;
CURL*curl=curl_easy_init();
if(NULL==curl)
{
return CURLE_FAILED_INIT;
}
curl_easy_setopt(curl,CURLOPT_URL,strUrl.c_str());
curl_easy_setopt(curl,CURLOPT_CONNECTTIMEOUT,3);
curl_easy_setopt(curl,CURLOPT_TIMEOUT,3);
res=curl_easy_perform(curl);
char*redirect_url={0};
curl_easy_setopt(curl,CURLOPT_FOLLOWLOCATION,1);//設置獲取用戶的源IP地址;
其中,CURLOPT_FOLLOWLOCATION,設置WEB認證的重定位URL;1設置這個選項為一個非零值(象“Location:“)的頭,把它當做HTTP頭的一部分發(fā)送
res=curl_easy_getinfo(curl,CURLINFO_REDIRECT_URL,&redirect_url);
//獲取用戶的源IP地址
strLocation=redirect_url;
curl_easy_cleanup(curl);
return res;
步驟13、判斷所述用戶的源IP地址是否在放行的白名單中;
步驟14、若在,則在web認證有效時間到期后仍然放行所述用戶訪問,
若不在,則在web認證有效時間到期后拒絕所述用戶訪問。
所述驅動程序用于:
對通過web認證的用戶,在web認證有效時間內允許所述用戶訪問網絡。
所述驅動程序在用于捕獲用戶請求web認證的網絡數據包之前,還用于:
下載并加載最新版本的放行白名單數據包,并解析生成IP地址集合的放行白名單。
所述驅動程序在下載并加載最新版本的放行白名單數據包之前,還用于:
將更新的最新版本的放行白名單上傳至服務器。
所述驅動程序還用于:
對于不在所述放行白名單中的IP地址,生成審計信息并上傳至服務器。
實施例二
該實施例提供了一種web認證下的用戶訪問網絡的系統(tǒng),其具體實現結構如圖2所示,包括:驅動模塊20,其運行基于網絡驅動程序接口規(guī)范NDIS寫入的驅動程序,所述驅動模塊包括:
捕獲組件23:其用于捕獲用戶請求web認證的網絡數據包;
解析組件24:其用于解析所述網絡數據包,獲取所述用戶的源IP地址;
判斷組件25:其用于判斷所述用戶的源IP地址是否在放行的白名單中;
執(zhí)行組件26:其用于當所述數據包中的源IP地址在放行的白名單中,則在web認證有效時間到期后仍然放行所述用戶訪問,
當所述數據包中的源IP地址不在放行的白名單中,則在web認證有效時間到期后拒絕所述用戶訪問。
本實施例的一種web認證下的用戶訪問網絡的系統(tǒng),所述驅動模塊20,還包括認證組件21,其用于:
對通過web認證的用戶,在web認證有效時間內允許所述用戶訪問網絡。
本實施例的一種web認證下的用戶訪問網絡的系統(tǒng),所述驅動模塊20,還包括下載組件22,其用于:在用于捕獲用戶請求web認證的網絡數據包之前,下載并加載最新版本的放行白名單數據包,并解析生成IP地址集合的放行白名單。
本實施例的一種web認證下的用戶訪問網絡的系統(tǒng),所述驅動模塊20,還包括上傳組件27,其用于在下載并加載最新版本的放行白名單數據包之前,將更新的最新版本的放行白名單上傳至服務器。
本實施例的一種web認證下的用戶訪問網絡的系統(tǒng),所述上傳組件27還用于:對于不在所述放行白名單中的IP地址,生成審計信息并上傳至服務器。
用本發(fā)明實施例的系統(tǒng)進行web認證下的用戶訪問網絡的具體過程與前述方法實施例類似,此處不再贅述。
綜上所述,本發(fā)明實施例通過基于網絡驅動程序接口規(guī)范NDIS寫入驅動程序,所述驅動程序用于:捕獲用戶請求web認證的網絡數據包;解析所述網絡數據包,獲取所述用戶的源IP地址;判斷所述用戶的源IP地址是否在放行的白名單中;若在,則在web認證有效時間到期后仍然放行所述用戶訪問,若不在,則在web認證有效時間到期后拒絕所述用戶訪問。能夠攔截較為底層的數據包,數據包的攔截率比較高,能夠攔截幾乎所有的數據包,因此具有較高的安全系數。
本領域普通技術人員可以理解:附圖只是一個實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件平臺的方式來實現?;谶@樣的理解,本發(fā)明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品可以存儲在存儲介質中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些部分所述的方法。
本說明書中的各個實施例均采用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對于裝置或系統(tǒng)實施例而言,由于其基本相似于方法實施例,所以描述得比較簡單,相關之處參見方法實施例的部分說明即可。以上所描述的裝置及系統(tǒng)實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部模塊來實現本實施例方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述,僅為本發(fā)明較佳的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發(fā)明揭露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍應該以權利要求的保護范圍為準。