一種網址重定向的檢測裝置及方法
【技術領域】
[0001]本發明涉及網址重定向技術領域,尤其涉及一種網址重定向的檢測裝置及方法。
【背景技術】
[0002]網址重定向,俗稱網址跳轉,是指當用戶輸入網址A進行訪問時,瀏覽器會自動跳轉到網址B,向用戶展示網址B的內容。
[0003]準確識別網址跳轉,建立全面的網址跳轉關系數據庫,對于自動網站分類、索引、網站安全性檢測等方面具有重要意義。例如,在檢測網站是否安全時,通常需要下載網站的HTML文件做分析,惡意網站可能通過在HTML中嵌入跳轉代碼,使得基于當前HTML內容的檢測無法探測到任何惡意內容;又如,搜索引擎在索引網站時,如果不能正確探測頁面存在的跳轉,也可能將用戶錯誤地引導至不安全的網站。比如釣魚網站制作者在頁面HTML中包含大量常見的搜索關鍵詞,但是頁面中嵌入了導致跳轉至真正釣魚網站的Javascript代碼(簡稱JS代碼),如果搜索引擎不能識別此類跳轉,很可能在搜索結果中出現這些跳轉網站而誤導用戶。
[0004]目前,實現網址跳轉通常有兩類方法:
[0005]一是通過HTTP頭返回的狀態碼指定,例如301跳轉,302跳轉等狀態碼實現跳轉。
[0006]二是通過HTML內容實現。比如meta標簽指定:
[0007]〈meta http-equiv=//Refresh//content=//0; url=http: //www.example, com/^/);
[0008]或者執行JS代碼實現跳轉:
[0009]window.locat1n=//http://example, com"。
[0010]對于第一類網址跳轉,通常容易識別,只需要獲取并分析HTTP頭即可;對于第二類網址跳轉,可以通過對HTML內容做靜態分析,從而解析出跳轉目的URL的字符串,但是,這種靜態分析方式很容易被惡意網站制作者通過字符串的拼接、加密等手段繞過。
【發明內容】
[0011]本發明提供了一種網址重定向的檢測裝置,能夠檢測出通過HTML內容實現的網址重定向。
[0012]本發明還提供了一種網址重定向的檢測方法,能夠檢測出通過HTML內容實現的網址重定向。
[0013]本發明的技術方案是這樣實現的:
[0014]一種網址重定向的檢測裝置,包括:
[0015]瀏覽器插件模塊,所述瀏覽器插件模塊以插件的形式設置在網頁瀏覽器中,用于在所述網頁瀏覽器下載到當前頁面內容之后、并在執行所述當前頁面內容之前,獲取當前頁面地址、當前頁面的引用頁面地址以及當前頁面的父頁面地址,判斷獲取的內容是否同時滿足如下2個條件:
[0016]條件1:當前頁面的引用頁面地址非空;
[0017]條件2:當前頁面地址等于當前頁面的父頁面地址;
[0018]如果是,則判定所述當前頁面的引用頁面地址向當前頁面地址存在跳轉關系,將所述跳轉關系發送至跳轉關系數據庫;
[0019]跳轉關系數據庫,用于接收并保存所述跳轉關系。
[0020]上述裝置中,網頁瀏覽器下載到當前頁面內容之后、并在執行所述當前頁面內容之前具體可以為:所述網頁瀏覽器下載到當前頁面內容之后、并在所述當前頁面的文件對象模型(DOM)樹建立之前。
[0021]上述裝置還可以包括HTTP頭跳轉檢測模塊,用于抓取給定頁面返回的HTTP頭,根據所述HTTP頭中的狀態碼判斷是否存在跳轉,如果是,則獲取所述HTTP頭中的跳轉地址,得到所述給定頁面的地址向所述跳轉地址的跳轉關系,將所述跳轉關系發送至跳轉關系數據庫;
[0022]所述跳轉關系數據庫用于接收并保存所述跳轉關系,還用于根據自身保存的跳轉關系建立包括多個頁面地址的跳轉關系鏈條。
[0023]上述裝置還可以包括:頁面地址發送模塊,用于將頁面地址發送至HTTP頭跳轉檢測模塊及所述瀏覽器插件模塊所屬的網頁瀏覽器;
[0024]所述HTTP頭跳轉檢測模塊抓取該頁面返回的HTTP頭,并判斷及獲取跳轉關系。
[0025]瀏覽器插件模塊還可以用于,當確定跳轉關系后,將所述跳轉關系中的當前頁面地址發送至所述HTTP頭跳轉檢測模塊;
[0026]所述HTTP頭跳轉檢測模塊抓取該當前頁面返回的HTTP頭,并判斷及獲取跳轉關系O
[0027]一種網址重定向的檢測方法,包括:
[0028]在網頁瀏覽器下載到當前頁面內容之后、并在執行所述當前頁面內容之前,獲取當前頁面地址、當前頁面的引用頁面地址以及當前頁面的父頁面地址,判斷獲取的內容是否同時滿足如下2個條件:
[0029]條件1:當前頁面的引用頁面地址非空;
[0030]條件2:當前頁面地址等于當前頁面的父頁面地址;
[0031]如果是,則判定所述當前頁面的引用頁面地址向當前頁面地址存在跳轉關系,保存該跳轉關系。
[0032]上述方法中,網頁瀏覽器下載到當前頁面內容之后、并在執行所述當前頁面內容之前具體可以為:所述網頁瀏覽器下載到當前頁面內容之后、并在所述當前頁面的文件對象模型DOM樹建立之前。
[0033]上述方法還可以包括:
[0034]抓取給定頁面返回的HTTP頭,根據所述HTTP頭中的狀態碼判斷是否存在跳轉,如果是,則獲取所述HTTP頭中的跳轉地址,得到所述給定頁面的地址向所述跳轉地址的跳轉關系,保存該跳轉關系;
[0035]根據保存的跳轉關系建立包括多個頁面地址的跳轉關系鏈條。
[0036]上述方法中,給定頁面可以為所述跳轉關系中的當前頁面地址所對應的頁面。
[0037]可見,本發明提出的網址重定向的檢測裝置及方法,通過在網頁瀏覽器中設置插件,能夠完全模擬用戶真實的上網環境,避免文本字符串拼接、加密等對檢測造成的影響,從而檢測出通過HTML內容實現的網址重定向。
【附圖說明】
[0038]圖1為本發明提出的網址重定向的檢測裝置的結構示意圖;
[0039]圖2為實施例二中獲取到的HTTP頭示意圖;
[0040]圖3為實施例三和四中檢測的多次網址重定向示意圖。
【具體實施方式】
[0041]本發明提出一種網址重定向的檢測裝置,如圖1為該裝置的結構示意圖,包括:
[0042]瀏覽器插件模塊101,以插件的形式設置在網頁瀏覽器中,用于在網頁瀏覽器下載到當前頁面內容之后、并在執行所述當前頁面內容之前,獲取當前頁面地址、當前頁面的引用頁面地址以及當前頁面的父頁面地址,判斷獲取的內容是否同時滿足如下2個條件:
[0043]條件1:當前頁面的引用頁面地址非空;
[0044]條件2:當前頁面地址等于當前頁面的父頁面地址;
[0045]如果是,則判定所述當前頁面的引用頁面地址向當前頁面地址存在跳轉關系,將所述跳轉關系發送至跳轉關系數據庫102 ;
[0046]跳轉關系數據庫102,用于接收并保存所述跳轉關系。
[0047]上述裝置中,網頁瀏覽器下載到當前頁面內容之后、并在執行所述當前頁面內容之前具體可以為:網頁瀏覽器下載到當前頁面內容之后、并在當前頁面的DOM樹建立之前。
[0048]通過瀏覽器插件模塊101能夠檢測出利用HTML內容實現的網址重定向。
[0049]上述裝置還可以包括HTTP頭跳轉檢測模塊103,用于抓取給定頁面返回的HTTP頭,根據所述HTTP頭中的狀態碼判斷是否存在跳轉,如果是,則獲取所述HTTP頭中的跳轉地址,得到所述給定頁面的地址向所述跳轉地址的跳轉關系,將所述跳轉關系發送至跳轉關系數據庫102 ;
[0050]跳轉關系數據庫102接收并保存所述跳轉關系。
[0051]通過HTTP頭跳轉檢測模塊103能夠檢測出利用HTTP頭實現的網址重定向。
[0052]跳轉關系數據庫102可以根據自身保存的跳轉關系建立包括多個頁面地址的跳轉關系鏈條。
[0053]上述裝置還可以包括:頁面地址發送模塊104,用于將頁面地址發送至HTTP頭跳轉檢測模塊103及所述瀏覽器插件模塊101所屬的網頁瀏覽器;
[0054]相應的,上述HTTP頭跳轉檢測模塊103所針對的給定頁面也就是其接收的頁面地址所對應的頁面;瀏覽器插件模塊101也可以在網頁瀏覽器執行頁面跳轉之后檢測出跳轉關系。
[0055]另外,瀏覽器插件模塊101還可以用于,當確定跳轉關系后,將上述跳轉關系中的當前頁面地址(也就是該跳轉關系中的目的地址)發送至所述HTTP頭跳轉檢測模塊;
[0056]相應的,上述HTTP頭跳轉檢測模塊103所針對的給定頁面也可以是該當前頁面地址所對應的頁面,從而檢測該頁面是否進一步向其他的頁面跳轉。
[0057]以下舉具體的實施例詳細介紹。
[0058]實施例一:
[0059]本實施例介紹瀏覽器插件模塊檢測跳轉關系的具體方式。瀏覽器插件模塊能夠檢測出利用HTML內容實現的網址重定向。
[0060]目前主流的網頁瀏覽器都支持使用插件以擴展瀏覽器功能。通過使用IE的ActiveX插件或Firefox/Chrome的網景插件應用程序編程接口(NPAPI)插件,可以方便地獲取訪問頁面生成的文件對象模型(DOM,Document Object Model)樹和各類屬性值。本發明通過自定義的瀏覽器插件模塊實現以下功能:
[0061]在當前頁面DOM樹構建之前,獲取當前頁面地址URL L(即window, locat1n, href屬性值)、當前頁面的引用頁面地址URL R (即window, document, referrer屬性值)和當前頁面的父頁面地址 URL P (window, parent, document, locat1n, href 屬性值)。
[0062]當URL L與URL P不相等時,說明當前頁面是以子頁面形式存在的(比如URL L通過iframe標簽內嵌在URL P的頁面)。
[0063]如果URL R非空且URL L等于URL P,則說明是通過HTML內容實現跳轉,則可以確定URL R至URL L的跳轉關系,可以記錄為(URL R, URL L),將該跳轉關系發送至跳轉關系數據庫;同時可以將URL L發送到HTTP頭跳轉檢測模塊做進一步探測。
[0064]采用瀏覽器插件的方法,可以完全模擬用戶真實上網環境,簡單的文本字符串拼接、加密也不會對檢測結果造成影響,從而增強了跳轉檢測的準確性。
[0065]實施例二:
[0066]本實施例介紹HTTP頭跳轉檢測模塊檢測跳轉關系的具體方式。HTTP頭跳轉檢測模塊能夠檢測出利用HTTP頭實現的網址重定向。
[0067]HTTP頭跳轉檢測模塊抓取給定頁面返回的HTTP頭,分析其中的狀態碼與