本發(fā)明涉及信息安全技術(shù)領(lǐng)域,特別涉及一種基于網(wǎng)絡(luò)協(xié)議實(shí)施監(jiān)控網(wǎng)頁訪問的方法。
背景技術(shù):
隨著科技的發(fā)展,人們對網(wǎng)絡(luò)的依賴也越來越大,網(wǎng)絡(luò)泄密問題也隨之顯現(xiàn)出來,各大公司,各種部門也不得不對職員的網(wǎng)絡(luò)使用情況進(jìn)行管控,防止職員泄露機(jī)密信息。
目前市面上也有很多的網(wǎng)絡(luò)管控工具,大多數(shù)都是對電腦進(jìn)行管控,且需在電腦上安裝客戶端,由客戶端收集數(shù)據(jù)發(fā)送到監(jiān)控端實(shí)現(xiàn)監(jiān)控。這種方式就必然會有以下問題:1:客戶端被卸載或禁用后就不會再起到監(jiān)控作用;2:由于客戶端需要在后臺運(yùn)行,不斷向服務(wù)器發(fā)送數(shù)據(jù)必然會使耗電量增大,顯然在移動設(shè)備上是不適用的。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對現(xiàn)有技術(shù)的缺陷,提供了一種基于網(wǎng)絡(luò)協(xié)議實(shí)施監(jiān)控網(wǎng)頁訪問的方法,能有效的解決上述現(xiàn)有技術(shù)存在的問題。
一種基于網(wǎng)絡(luò)協(xié)議實(shí)施監(jiān)控網(wǎng)頁訪問的方法,包括以下步驟:
S1:通過監(jiān)控路由器,實(shí)現(xiàn)網(wǎng)頁請求數(shù)據(jù)包采集,收集網(wǎng)絡(luò)數(shù)據(jù)中的網(wǎng)頁請求數(shù)據(jù)包;
S2:網(wǎng)頁請求數(shù)據(jù)包解析,獲取httpHost值和網(wǎng)絡(luò)路徑值;
S3:請求返回包采集,收集網(wǎng)絡(luò)數(shù)據(jù)中的網(wǎng)頁請求返回包;
S4:請求返回包解析,獲取獲取返回內(nèi)容長度和返回內(nèi)容,并將其寫入緩存;
S5:網(wǎng)頁請求封裝,將網(wǎng)絡(luò)請求與返回的值進(jìn)行整合,獲得網(wǎng)頁的內(nèi)容。
作為優(yōu)選,所述S1的詳細(xì)步驟如下:
S11:通過第三方API提供的相應(yīng)接口抓取用戶使用網(wǎng)絡(luò)過程中產(chǎn)生的數(shù)據(jù)包,再通過瀏覽器的協(xié)議類型、端口號、Host和網(wǎng)絡(luò)請求地址進(jìn)行過濾,若發(fā)現(xiàn)對應(yīng)數(shù)據(jù)包則記錄起來;
S12:獲取HTTP請求的Accept值,從記錄的數(shù)據(jù)包中掃描特征“Accept:”到“0D0A”截取字符串即為Accrpt值;
S13:判斷請求是否為網(wǎng)頁請求,若Accept值中包含“text/html”則為網(wǎng)頁請求,執(zhí)行S2;否則表示不是網(wǎng)頁請求,結(jié)束解析。
作為優(yōu)選,所述S2的詳細(xì)步驟如下:
S21:httpHost解析,從數(shù)據(jù)包中的“Host:”到“0D0A”截取的字符串即為httpHost值;
S22:網(wǎng)絡(luò)路徑解析,從數(shù)據(jù)包中的“GET”到“HTTP/1.1”截取的字符串即為網(wǎng)絡(luò)路徑值。
作為優(yōu)選,所述S3的詳細(xì)步驟如下:
S31:通過第三方API提供的相應(yīng)接口抓取用戶使用網(wǎng)絡(luò)過程中產(chǎn)生的數(shù)據(jù)包,再通過返回包協(xié)議類型:TCP-HTTP和端口號:80,找到相應(yīng)數(shù)據(jù)包并開始記錄;
S32:獲取返回內(nèi)容類型,從數(shù)據(jù)包中的“Content-Type:”到第一個“;”截取字符串即為返回內(nèi)容類型;
S33:判斷返回內(nèi)容類型是否為“text/html”,若是則是網(wǎng)頁類型,執(zhí)行S4;不是則結(jié)束解析。
作為優(yōu)選,所述S4的詳細(xì)步驟如下:
S41:獲取返回內(nèi)容長度命名為length;從http消息頭“0D0A0D0A”位置后為返回內(nèi)容長度的十六進(jìn)制字符串值,該字符串以“0D0A”結(jié)束,通過轉(zhuǎn)換方法得到返回內(nèi)容十進(jìn)制長度值記為length;
S42:獲取返回內(nèi)容,從內(nèi)容長度向后獲取length個字節(jié)為返回內(nèi)容;
S43:將返回內(nèi)容寫入到緩存;將內(nèi)容進(jìn)行解壓,又因解壓gz壓縮內(nèi)容的系統(tǒng)庫只提供了對gz文件的解壓操作,所以需將內(nèi)容寫入到一個后綴名為“.gz”的文件中;
S44:解壓文件,調(diào)用系統(tǒng)庫直接對上一步保存的緩存文件進(jìn)行解壓,解壓后得到一個網(wǎng)頁文件即html文件,并將該html存儲到指定路徑;
S45:解析文件,調(diào)用庫函數(shù)對html文件進(jìn)行解析,根據(jù)網(wǎng)頁的標(biāo)簽屬性獲取對應(yīng)的內(nèi)容。
作為優(yōu)選,所述S5的詳細(xì)步驟如下:
S51:申請一個全局對象緩存獲取到的數(shù)值列表;
S52:獲取網(wǎng)絡(luò)請求數(shù)據(jù)包的本地端口號,通過第三方API的相應(yīng)接口可獲取到網(wǎng)絡(luò)請求數(shù)據(jù)包的本地端口號;
S53:網(wǎng)絡(luò)請求數(shù)據(jù)包校驗(yàn)取值;將本地端口號做為key在緩存列表中查找是否存在數(shù)值,該數(shù)值應(yīng)為S44得到的html文件路徑和S45獲取到的title值,若是則將該值與S2獲取到的httpHost和網(wǎng)絡(luò)路徑組合起來即為一個完整的網(wǎng)頁訪問數(shù)據(jù);若不是則執(zhí)行S54;
S54:若S53判斷數(shù)值不存在,則將S2獲取到的httpHost和網(wǎng)絡(luò)路徑以本地端口號為key存儲到緩存列表中;
S55:獲取網(wǎng)絡(luò)請求返回包的本地端口號,通過第三方API的相應(yīng)接口可獲取到網(wǎng)絡(luò)請求返回包的本地端口號;
S56:網(wǎng)絡(luò)請求返回包校驗(yàn)取值;將本地端口號做為key在緩存列表中查找是否存在數(shù)值,該數(shù)值應(yīng)為S2獲取到的httpHost和網(wǎng)絡(luò)路徑,若是則將該值與S44得到的html文件路徑和S45獲取到的title值組合起來即為一個完整的網(wǎng)頁訪問數(shù)據(jù);若不是則執(zhí)行S57;
S57:若S55判斷數(shù)值不存在,則將S44得到的html文件路徑和S45獲取到的title值以本地端口號為key存儲到緩存列表中。
與現(xiàn)有技術(shù)相比本發(fā)明的優(yōu)點(diǎn)在于:1、無需安裝客戶端,方便且隱蔽;2、通過抓取、解析路由器上收發(fā)的網(wǎng)絡(luò)數(shù)據(jù)包實(shí)現(xiàn)監(jiān)控,保護(hù)隱私數(shù)據(jù)的信息安全;3、可以獲取被監(jiān)控的設(shè)備中所瀏覽的所有網(wǎng)頁記錄,準(zhǔn)確高效。
具體實(shí)施方式
為使本發(fā)明的目的:技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例,對本發(fā)明做進(jìn)一步詳細(xì)說明。
一種基于網(wǎng)絡(luò)協(xié)議實(shí)施監(jiān)控網(wǎng)頁訪問的方法,包括以下步驟:
S1:網(wǎng)頁請求數(shù)據(jù)包采集;
S11:通過第三方API提供的相應(yīng)接口抓取用戶使用網(wǎng)絡(luò)過程中產(chǎn)生的數(shù)據(jù)包,再通過瀏覽器的協(xié)議類型、端口號、Host和網(wǎng)絡(luò)請求地址進(jìn)行過濾,若發(fā)現(xiàn)對應(yīng)數(shù)據(jù)包則記錄起來;
S12:獲取HTTP請求的Accept值,從記錄的數(shù)據(jù)包中掃描特征“Accept:”到“0D0A”截取字符串即為Accrpt值;
S13:判斷請求是否為網(wǎng)頁請求,若Accept值中包含“text/html”則為網(wǎng)頁請求,執(zhí)行S2;否則表示不是網(wǎng)頁請求,結(jié)束解析。
S2:網(wǎng)頁請求數(shù)據(jù)包解析;
S21:httpHost解析,從數(shù)據(jù)包中的“Host:”到“0D0A”截取的字符串即為httpHost值;
S22:網(wǎng)絡(luò)路徑解析,從數(shù)據(jù)包中的“GET”到“HTTP/1.1”截取的字符串即為網(wǎng)絡(luò)路徑值。
S3:請求返回包采集;
S31:通過第三方API提供提供的相應(yīng)接口抓取用戶使用網(wǎng)絡(luò)過程中產(chǎn)生的數(shù)據(jù)包,再通過返回包協(xié)議類型:TCP-HTTP和端口號:80,找到相應(yīng)數(shù)據(jù)包并開始記錄;
S32:獲取返回內(nèi)容類型,從數(shù)據(jù)包中的“Content-Type:”到第一個“;”截取字符串即為返回內(nèi)容類型;
S33:判斷返回內(nèi)容類型是否為“text/html”,若是則是網(wǎng)頁類型,執(zhí)行S4;不是則結(jié)束解析。
S4:請求返回包解析;
S41:獲取返回內(nèi)容長度命名為length;從http消息頭“0D0A0D0A”位置后為返回內(nèi)容長度的十六進(jìn)制字符串值,該字符串以0D0A結(jié)束,通過轉(zhuǎn)換方法及可得到返回內(nèi)容十進(jìn)制長度值記為length;
S42:獲取返回內(nèi)容,從內(nèi)容長度向后獲取length個字節(jié)為返回內(nèi)容;
S43:將返回內(nèi)容寫入到緩存;由于返回內(nèi)容是通過gz壓縮后傳輸?shù)模孕枰獙?nèi)容進(jìn)行解壓,又因解壓gz壓縮內(nèi)容的系統(tǒng)庫只提供了對gz文件的解壓操作,所以需將內(nèi)容寫入到一個后綴名為“.gz”的文件中;
S44:解壓文件,調(diào)用系統(tǒng)庫直接對上一步保存的緩存文件進(jìn)行解壓,解壓后得到一個網(wǎng)頁文件即html文件,并將該html存儲到指定路徑(存儲至硬盤);
S45:解析文件,調(diào)用庫函數(shù)對html文件進(jìn)行解析,根據(jù)網(wǎng)頁的標(biāo)簽屬性獲取對應(yīng)的內(nèi)容。
例如取得網(wǎng)頁的title標(biāo)簽可獲得網(wǎng)頁的標(biāo)題;
獲取百度用戶賬號的方法如下:
步驟一:直接通過文本讀取的方式找到PageData.user節(jié)點(diǎn),將內(nèi)容存儲到j(luò)son對象中;
步驟二:通過json對象提供的方法獲取到user_id(用戶ID),user_name(用戶名稱)。
獲取瀏覽的文本信息的方法如下:
通過網(wǎng)頁解析接口(如Dom、jsoup等都可以解析網(wǎng)頁內(nèi)容)找到class="text",id="text"的div標(biāo)簽;
步驟二:通過網(wǎng)頁解析接口提供的方法獲取到div內(nèi)的文本內(nèi)容。
S5:網(wǎng)頁請求封裝,要得到一個完整的信息需將網(wǎng)絡(luò)請求與返回的值進(jìn)行整合,由于每一次完整的會話本地端口號都相同的,所以可通過本地端口號進(jìn)行匹配;
S51:申請一個全局對象緩存獲取到的數(shù)值列表,本例申請了一個JSONArray對象
S52:獲取網(wǎng)絡(luò)請求數(shù)據(jù)包的本地端口號,通過第三方API的相應(yīng)接口可獲取到網(wǎng)絡(luò)請求數(shù)據(jù)包的本地端口號;
S53:網(wǎng)絡(luò)請求數(shù)據(jù)包校驗(yàn)取值;將本地端口號做為key在緩存列表中查找是否存在數(shù)值,該數(shù)值應(yīng)為S44得到的html文件路徑和S45獲取到的title值,若是則將該值與S2獲取到的httpHost和網(wǎng)絡(luò)路徑組合起來即為一個完整的網(wǎng)頁訪問數(shù)據(jù);若不是則執(zhí)行S54;
S54:若S53判斷數(shù)值不存在,則將S2獲取到的httpHost和網(wǎng)絡(luò)路徑以本地端口號為key存儲到緩存列表中;
S55:獲取網(wǎng)絡(luò)請求返回包的本地端口號,通過第三方API的相應(yīng)接口可獲取到網(wǎng)絡(luò)請求返回包的本地端口號;
S56:網(wǎng)絡(luò)請求返回包校驗(yàn)取值;將本地端口號做為key在緩存列表中查找是否存在數(shù)值,該數(shù)值應(yīng)為S2獲取到的httpHost和網(wǎng)絡(luò)路徑,若是則將該值與S44得到的html文件路徑和S45獲取到的title值組合起來即為一個完整的網(wǎng)頁訪問數(shù)據(jù);若不是則執(zhí)行S57;
S57:若S55判斷數(shù)值不存在,則將S44得到的html文件路徑和S45獲取到的title值以本地端口號為key存儲到緩存列表中。
本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實(shí)施例是為了幫助讀者理解本發(fā)明的實(shí)施方法,應(yīng)被理解為本發(fā)明的保護(hù)范圍并不局限于這樣的特別陳述和實(shí)施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實(shí)質(zhì)的其它各種具體變形和組合,這些變形和組合仍然在本發(fā)明的保護(hù)范圍內(nèi)。