一種目錄資料庫生成、查詢方法及裝置與流程
2023-05-03 21:58:46 2

本發明涉及計算機及信息安全技術領域,具體而言,涉及一種目錄資料庫生成、查詢方法及裝置。
背景技術:
WEB網站是網際網路上應用最普遍的網站,因而經常會遭受到惡意攻擊,其中目錄掃描攻擊是一種通用性強、危害高的攻擊手段。在目錄掃描攻擊中,攻擊者通過迭代大量的目錄和文件名列表發起超文本傳送協議(Hypertext transfer protocol,HTTP)請求,獲取網站目錄信息拓撲,從而洩露出上傳頁面、後臺登陸頁面等敏感信息,一旦攻擊者獲得了這些信息,整個網站系統的安全防護將功虧一簣。
為了防止網站被攻擊,需要對網站的安全性進行檢測,找到網站中的脆弱性目錄,以便及時修改網絡架構,保護網站安全。
現有技術中,大都是採用目錄掃描技術掃描網站目錄資料庫,以查找網站中的脆弱性目錄,但是,現有技術中生成的網站目錄資料庫只是記錄一些網站有可能存在的信息,存儲的數據量小,缺乏分類存儲,並且現有技術中的目錄資料庫是隱藏起來的,這樣導致很難掃描到網站的脆弱性目錄,從而不利對網站進行安全性檢測。
技術實現要素:
有鑑於此,本發明實施例的目的在於提供一種目錄資料庫生成、查詢方法及裝置,以解決現有技術的網站目錄資料庫存儲的數據量小,缺乏分類存儲,導致很難掃描到網站的脆弱性目錄,不利於對網站進行安全性檢測的問題。
第一方面,本發明實施例提供了一種目錄資料庫生成方法,其中,所述方法包括:
獲取目標網站的網站架構,根據所述網站架構確定爬蟲策略;
根據所述爬蟲策略獲取所述目標網站的源碼數據;
根據獲取所述源碼數據的路徑確定所述源碼數據在目錄資料庫中的主鍵,根據所述源碼數據的特徵參數確定所述源碼數據在目錄資料庫中的從鍵,所述特徵參數包括:所述源碼數據的類型、網絡互聯協議地址、腳本語言、文件類型、目錄深度及目錄廣度;
根據所述主鍵和所述從鍵確定所述目標網站的所述源碼數據在所述目錄資料庫中的存儲目錄,並存儲所述源碼數據,生成所述目錄資料庫。
結合第一方面,本發明實施例提供了上述第一方面的第一種可能的實現方式,其中,所述根據所述網站架構確定爬蟲策略,包括:
根據所述目標網站的網站架構,確定所述目標網站的目錄深度,將所述目錄深度確定為爬取深度;
對所述目標網站的網站架構進行分析,構造適用於所述目標網站上所有源碼的通用統一資源定位符;
根據所述目標網站的網站架構,設定所述目標網站的加密數據及請求的標頭信息;
將所述爬取深度、所述通用統一資源定位符、所述目標網站的加密數據及所述請求的標頭信息確定為所述爬蟲策略。
結合第一方面,本發明實施例提供了上述第一方面的第二種可能的實現方式,其中,所述根據所述爬蟲策略獲取所述目標網站的源碼數據,包括:
採用多線程方式從所述目標網站的網頁數據流中解析源碼壓縮包;
對所述源碼壓縮包進行處理,獲取所述目標網站的源碼數據。
結合第一方面的第二種可能的實現方式,本發明實施例提供了上述第一方面的第三種可能的實現方式,其中,所述對所述源碼壓縮包進行處理,獲取所述目標網站的源碼數據,包括:
對所述源碼壓縮包進行解壓處理,得到所述源碼的原始數據;
對所述原始數據進行篩選,篩除所述原始數據中的圖片、腳本及無效連結數據;
對篩選後的原始數據進行去噪篩選,篩除重複的原始數據,得到所述目標網站的源碼數據。
第二方面,本發明實施例提供了一種目錄資料庫查詢方法,其中,所述方法包括:
設定目標網站的爬蟲策略,根據所述爬蟲策略獲取所述目標網站的網站拓撲圖,所述爬蟲策略包括設定爬蟲起始統一資源定位符,所述目標網站加密數據及請求的標頭信息;
根據所述目標網站的網站拓撲圖及預先生成的目錄資料庫,採用模式匹配方法從所述目錄資料庫中查詢與所述目標網站匹配的目錄資料庫子集,所述模式匹配包括網站結構化信息匹配及目錄樹結構匹配。
結合第二方面,本發明實施例提供了上述對第二方面的第一種可能的實現方式,其中,所述模式匹配包括網站結構化信息匹配,所述根據所述目標網站的網站拓撲圖及預先生成的目錄資料庫,從所述目錄資料庫中篩選與所述目標網站匹配的目錄資料庫子集,包括:
從所述網站拓撲圖中獲取所述目標網站的結構化信息,所述結構化信息包括所述目標網站的腳本語言、所述目標網站的目錄深度及所述目標網站的目錄廣度中的一種或多種;
根據所述目標網站的結構化信息,採用置換函數對所述目錄資料庫中的目錄資料庫子集進行狀態轉換,篩除與所述結構化信息不匹配的目錄資料庫子集;
將所述目錄資料庫中剩餘的目錄資料庫子集確定為與所述目標網站匹配的目錄資料庫子集。
結合第二方面,本發明實施例提供了上述第二方面的第二種可能的實現方式,其中,所述模式匹配包括目錄樹結構匹配,所述根據所述目標網站的網站拓撲圖及預先生成的目錄資料庫,從所述目錄資料庫中查詢與所述目標網站匹配的目錄資料庫子集,包括:
將所述目錄資料庫中的目錄資料庫子集轉換成目錄樹結構;
採用模式匹配算法從所述目錄資料庫中的目錄樹結構中選取與所述目標網站的相似度大於或者等於預設值的目錄樹結構;
將選取的目錄樹結構對應的目錄資料庫子集確定為與所述目標網站匹配的目錄資料庫子集。
第三方面,本發明實施例提供了一種目錄資料庫生成裝置,其中,所述裝置包括:
第一確定模塊,用於獲取目標網站的網站架構,根據所述網站架構確定爬蟲策略;
獲取模塊,用於根據所述爬蟲策略獲取所述目標網站的源碼數據;
第二確定模塊,用於根據獲取所述源碼數據的路徑確定所述源碼數據在目錄資料庫中的主鍵,根據所述源碼數據的特徵參數確定所述源碼數據在目錄資料庫中的從鍵,所述特徵參數包括:所述源碼數據的類型、網絡互聯協議地址、腳本語言、文件類型、目錄深度及目錄廣度;
生成模塊,用於根據所述主鍵和所述從鍵確定所述目標網站的所述源碼數據在所述目錄資料庫中的存儲目錄,並存儲所述源碼數據,生成所述目錄資料庫。
結合第三方面,本發明實施例提供了上述第三方面的第一種可能的實現方式,其中,所述獲取模塊包括:
解析單元,用於採用多線程方式從所述目標網站的網頁數據流中解析源碼壓縮包;
獲取單元,用於對所述源碼壓縮包進行處理,獲取所述目標網站的源碼數據。
第四方面,本發明實施例提供了一種目錄資料庫查詢裝置,其中,所述裝置包括:
獲取模塊,用於設定目標網站的爬蟲策略,根據所述爬蟲策略獲取所述目標網站的網站拓撲圖,所述爬蟲策略包括設定爬蟲起始統一資源定位符,所述目標網站加密數據及請求的標頭信息;
查詢模塊,用於根據所述目標網站的網站拓撲圖及預先生成的目錄資料庫,採用模式匹配方法從所述目錄資料庫中查詢與所述目標網站匹配的目錄資料庫子集,所述模式匹配包括網站結構化信息匹配及目錄樹結構匹配。
本發明實施例提供的目錄資料庫生成、查詢方法及裝置,生成的目錄資料庫存儲有大量的數據信息,並且,根據主鍵和從鍵確定目標網站的源碼數據在目錄資料庫中的存儲路徑,可以方便進行目錄查詢,因此,在進行目錄掃描時,更容易掃描到脆弱性目錄,從而及時對網站架構進行調整,保護網站的安全。
為使本發明的上述目的、特徵和優點能更明顯易懂,下文特舉較佳實施例,並配合所附附圖,作詳細說明如下。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例中所需要使用的附圖作簡單地介紹,應當理解,以下附圖僅示出了本發明的某些實施例,因此不應被看作是對範圍的限定,對於本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他相關的附圖。
圖1示出了本發明實施例1所提供的目錄資料庫生成方法的流程圖;
圖2示出了本發明實施例2所提供的目錄資料庫查詢方法的流程圖;
圖3示出了本發明實施例3所提供的目錄資料庫生成裝置的結構示意圖;
圖4示出了本發明實施例4所提供的目錄資料庫查詢裝置的結構示意圖。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。通常在此處附圖中描述和示出的本發明實施例的組件可以以各種不同的配置來布置和設計。因此,以下對在附圖中提供的本發明的實施例的詳細描述並非旨在限制要求保護的本發明的範圍,而是僅僅表示本發明的選定實施例。基於本發明的實施例,本領域技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
考慮到現有技術中,為了防止網站被目錄攻擊,需要對網站的目錄資料庫進行掃描,找到網站的脆弱性目錄,以便及時修改網站架構,保護網站安全,現有技術中大都是採用目錄掃描技術掃描網站目錄資料庫,但是現有的目錄資料庫只是記錄一些網站有可能存在的信息,存儲的數據量小,並且現有技術中的目錄資料庫都是隱藏起來的,這樣導致很難掃描到網站的脆弱性目錄,從而不利於網站進行安全性檢測。基於此,本發明實施例提供了一種目錄資料庫生成、查詢方法及裝置,下面通過實施例進行描述。
實施例1
本發明實施例提供了一種目錄資料庫生成方法,採用本發明實施例提供的方法生成的目錄資料庫數據量較大,且設定了網站源碼數據在目錄資料庫中的主鍵和從鍵,方便進行目錄查詢。
如圖1所示,本發明實施例提供的目錄資料庫生成方法,包括步驟S110-S140,具體如下。
S110,獲取目標網站的網站架構,根據上述網站架構確定爬蟲策略。
上述目標網站為開源建站平臺,比如說,上述目標網站可以為Github、站長之家等等,當然還可以是其它網站,本發明實施例並不限定上述目標網站的具體類型。
在確定目標網站的爬蟲策略之前,首先需要獲取目標網站的網站架構,目標網站的網站架構可以通過網絡爬蟲技術來獲取,對網站的每個節點進行遍歷爬取,獲取目標網站的網站架構,當獲取到目標網站的網站架構後,根據上述網站架構確定爬蟲策略,具體包括步驟:根據目標網站的網站架構,確定目標網站的目錄深度,將該目錄深度確定為爬取深度;對目標網站的網站架構進行分析,構造適用於上述目標網站上所有源碼的通用統一資源定位符(Uniform Resource Locator,URL);根據上述目標網站的網站架構,設定目標網站的加密數據及請求的標頭信息;將爬取深度、通用URL、目標網站的加密數據及請求的標頭信息確定為爬蟲策略。
在本發明實施例中,可以由工作人員對目標網站的架構進行分析,確定出源碼數據包的下載頁,即在哪個頁面上可以下載源碼數據包,以及目標網站的目錄深度,將目標網站的目錄深度確定為需要爬取的深度。
由於每個網站上會有很多源碼可以下載,因此,為了下載方便,可以構造一個適用於目標網站上所有源碼的通用URL,這樣,在下載不通的源碼時,只需要改變該目標網站的通用URL上的源碼名稱就可以,不需要每下載一個源碼,設置一個URL,比如說,構造的目標網站的通用URL為www.xxx.com/?url=源碼名稱,這樣,只需要更改後面的源碼名稱,就可以下載不同的源碼,下載不同的源碼時,該通用URL前面的內容是不需要修改的,當然,上述只是舉例說明構造通用URL,並沒有具體限定構造的通用URL的具體內容。
另外,有的網站可能存在反爬蟲機制,並不允許大規模下載該網站的源碼數據包,因此,為了能夠獲取該網站的源碼壓縮包,可以設定該目標網站的加密數據和請求標頭信息,通過這種方式,能夠規避反爬蟲機制,使得能夠大規模下載目標網站的源碼壓縮包,上述目標網站的加密數據可以是該目標網站的cookie,上述請求表頭信息可以是請求的Referer表頭信息。
將上述確定的爬取深度、通用URL、cookie及Referer頭部信息確定為目標網站的爬蟲策略。
S120,根據上述爬蟲策略獲取目標網站的源碼數據。
當確定了目標網站的爬蟲策略後,根據確定的目標網站的爬蟲策略獲取目標網站的源碼數據,具體過程包括:採用多線程方式從目標網站的網頁數據流中解析源碼壓縮包;對上述源碼壓縮包進行處理,獲取目標網站的源碼數據。
在本發明實施例中,為了提高源碼壓縮包的下載速率,可以採用多線程的方式從網頁數據流中解析下載源碼壓縮包,即多個程序同時運行,當從網頁數據流中解析出源碼壓縮包後,將源碼壓縮包進行存儲。
而從源碼壓縮包中獲取目標網站的源碼數據,具體包括:對源碼壓縮包進行解壓處理,得到源碼的原始數據;對上述原始數據進行篩選,篩除原始數據中的圖片、腳本及無效連結數據;對篩選後的原始數據進行去噪篩選,篩除重複的原始數據,得到目標網站的源碼數據。
在本發明實施例中,從網頁數據流中下載的是源碼壓縮包,因此首先需要對源碼壓縮包進行解壓縮處理,在進行解壓處理時,可以根據源碼壓縮包的格式對源碼壓縮包進行分類,之後按照不同類別對源碼壓縮包進行解壓,可以得到大量的原始數據,這些原始數據中包括源碼數據、無效連結、圖片以及腳本等內容,因此,可以根據原始數據的後綴,篩除原始數據中的圖片、腳本和無效連結數據,之後,在將篩除圖片、腳本及無效連結後的數據進行去噪篩選,即刪除重複的數據,將篩除後剩餘的數據確定為目標網站的源碼數據,這時得到的源碼數據為源碼字符串。
S130,根據獲取源碼數據的路徑確定源碼數據在目錄資料庫中的主鍵,根據源碼數據的特徵參數確定源碼數據在目錄資料庫中的從鍵,上述特徵參數包括:源碼數據的類型、網絡互聯協議(Internet Protocol,IP)地址、腳本語言、文件類型、目錄深度及目錄廣度。
上述獲取源碼數據的路徑指的是源碼數據從源碼壓縮包中解析出來的路徑,以獲取源碼數據的路徑作為主鍵,保證了目錄資料庫中不會出現重複的路徑。
上述特徵參數還可以包括源碼數據出現的次數以及出現的源碼數據的個數。
S140,根據上述主鍵和從鍵確定目標網站的源碼數據在目錄資料庫中的存儲目錄,並存儲該源碼數據,生成目錄資料庫。
當上述確定了源碼數據在目錄資料庫中的主鍵和從鍵後,根據確定的主鍵和從鍵確定出源碼數據在目錄資料庫中的存儲目錄,並按照確定出的存儲目錄將目標網站的源碼數據進行存儲,這樣生成網站的目錄資料庫。
生成的目錄資料庫中可以存儲多個網站的源碼數據,每個網站的源碼數據可以存儲在一個目錄資料庫子集中,或者同一類型的網站的源碼數據存儲在一個目錄資料庫子集中,多個目錄資料庫子集組成了目錄資料庫。
上述同一類型的網站指的是腳本語言相同的網站,或者網站架構相同或者相似的網站等等,本發明實施例並不限定上述同一類型的網站具體指的是哪些參數相同或者相似的網站。
根據上述主鍵和從鍵確定目標網站的源碼數據在目錄資料庫中的存儲目錄,以此方法生成的目錄資料庫可以讓用戶根據網站的結構化信息查詢目錄資料庫子集,比如說,可以查詢同源性網站的目錄資料庫子集,可以查詢同腳本的網站的目錄資料庫子集,還可以根據網站的目錄深度和目錄廣度查詢相似的網站的目錄資料庫子集。
本發明實施例提供的目錄資料庫生成方法,生成的目錄資料庫存儲有大量的數據信息,並且,根據主鍵和從鍵確定目標網站的源碼數據在目錄資料庫中的存儲路徑,可以方便進行目錄查詢,因此,在進行目錄掃描時,更容易掃描到脆弱性目錄,從而及時對網站架構進行調整,保護網站的安全。
實施例2
本發明實施例提供了一種目錄資料庫查詢方法,該方法通過模式匹配方法從目錄資料庫中查詢與目標網站相匹配的目錄資料庫子集,提高了查詢的效率。
如圖2所示,採用本發明實施例提供的目錄資料庫查詢方法查詢與目標網站相匹配的目錄資料庫子集時,具體包括步驟S210-S220。
S210,設定目標網站的爬蟲策略,根據該爬蟲策略獲取目標網站的網站拓撲圖(Sitemap),該爬蟲策略包括設定爬蟲起始URL、目標網站的加密數據及請求的標頭信息。
在採用網絡爬蟲技術獲取目標網站的Sitemap時,需要設定爬取的起始URL,由此而網站設置有反爬蟲機制,為了規避某些網站的反爬蟲機制,需要設定目標網站的加密數據及請求的標頭信息,上述目標網站的加密數據可以是目標網站的cookie,上述請求的標頭信息可以是請求的header,將上述設置的爬蟲的起始URL、目標網站的加密數據及請求的標頭信息確定為目標網站的爬蟲策略,根據該爬蟲策略對目標網站進行爬取。
爬取目標網站時,採取廣度優先搜索算法(Breadth-First-Search,BFS)和深度優先搜索算法(Depth-First-Search,DFS)遍歷目標網站的每個節點,以保證爬取到的目標網站的數據是全面的,可以使用beautiful soup從目標網站的每個網頁上爬取數據,並將爬取的同域名下的URL不斷加入到隊列中,當滿足退出條件時停止爬取,上述退出條件可以是已經遍歷了目標網站的每個節點,將爬取的數據進行保存,其中爬去的數據包括目標網站Sitemap,該Sitemap還包括目標網站的結構化信息,該結構化信息包括目標網站的腳本語言、目標網站的目錄深度和目錄廣度。
S220,根據目標網站的Sitemap及預先生成的目錄資料庫,採用模式匹配方法從目錄資料庫中查詢與目標網站匹配的目錄資料庫子集,上述模式匹配包括網站結構化信息匹配及目錄樹結構匹配。
當上述模式匹配為結構化信息匹配時,從目錄資料庫中查詢與目標網站匹配的目錄資料庫子集,包括:從Sitemap中獲取目標網站的結構化信息,該結構化信息包括目標網站的腳本語言、目標網站的目錄深度及目標網站的目錄廣度中的一種或多種;根據目標網站的結構化信息,採用置換函數對目錄資料庫中的目錄資料庫子集進行狀態轉換,篩除與上述結構化信息不匹配的目錄資料庫子集;將目錄資料庫中剩餘的目錄資料庫子集確定為與目標網站匹配的目錄資料庫子集。
在本發明實施例中,採用基於自動狀態機的模式匹配算法獲取與目標網站相匹配的目錄資料庫子集,本發明採用的是確定型有限狀態自動機,用五元組表示為:M=(K,Σ,f,S,Z),其中,K表示的是有窮集,表示上述確定型有限狀態自動機中的全部狀態的集合,即本發明實施例中目錄資料庫中所有目錄資料庫子集,Σ表示的是有窮元素集,每個元素代表一個輸入字符,即每個元素代表目標網站的一種結構化信息,f為置換函數,是在K×Σ上的映像,每當輸入一個結構化信息,對目錄資料庫中的目錄資料庫子集進行篩選一次,S是上述確定型有限狀態自動機中的唯一初態,且S∈K,Z表示的是終態集合,是K的一個真子集,Z中的元素表示一個模式的結束。
當在置換函數中輸入目標網站的結構化信息時,就會將置換函數中的目錄資料庫子集轉換成另外一個目錄資料庫子集,可以通過公式f(ki,a)=kj(ki∈K,kj∈Σ),其中,ki為當前目錄資料庫子集,a為輸入的目標網站的結構化信息,該結構化信息可以是目標網站的目錄深度,也可以是目標網站的目錄廣度,通過上述置換函數,可以把當前目錄資料庫子集ki轉換成另外一個目錄資料庫子集kj,目錄資料庫子集kj符合目標網站的結構化信息,通過上述方法可以篩除與目標網站的結構化信息不匹配的目錄資料庫子集,將目錄資料庫中剩餘的目錄資料庫子集確定為與目標網站相匹配的目錄資料庫子集。
當上述模式匹配包括目錄樹結構匹配時,從目錄資料庫中查詢與目標網站匹配的目錄資料庫子集,包括:將目錄資料庫中的目錄資料庫子集轉換成目錄樹結構;採用模式匹配算法從目錄資料庫中的目錄樹結構中選取與目標網站的Sitemap的相似度大於或者等於預設值的目錄數結構;將選取的目錄樹結構對應的目錄資料庫子集確定為與目標網站匹配的目錄資料庫子集。
可以採用克努特-莫裡斯-普拉(The Knuth-Morris-Pratt Algorithm,KMP)匹配算法進行目錄樹結構與目標網站的Sitemap的節點匹配。
其中,上述預設值是預先設置的一個數值,當目錄數結構與目標網站的Sitemap的相似度大於或者等於該預設值時,則判斷為該目錄數結構與目標網站相同或者相似,這時,將該目錄樹結構對應的目錄資料庫子集確定為與目標網站相匹配的目錄資料庫子集。
上述可以通過比較目標網站的Sitemap與目錄數結構的節點,如果相同的節點與總節點的比例達到預設值時,則判斷上述目標網站與該目錄樹結構相同或者相似。
比如說,與目標網站進行匹配的目錄數結構為三級目錄,第一級目錄為一個節點,第二級目錄為兩個節點,而第二級目錄的每個節點在第三級目錄上存在三個節點,而目標網站的Sitemap也存在三級目錄,第一級目錄為一個節點,第二級目錄為兩個節點,而第二級目錄的每個節點在第三級目錄上也存在三個節點,這時,可以判斷為該目錄樹結構與目標網站的Sitemap相同,當然,上述只是舉例說明進行比較的具體過程,如果上述目錄樹結構與目標網站的Sitemap的節點並不是完全相同,而是存在一點的差異,也可以判斷為該目錄樹結構與目標網站相同或者相似,判斷為相同或者相似的具體條件可以根據實際情況進行設置,本發明實施例並不限定判斷為相同或者相似的具體條件。
上述可以將目錄資料庫中同一源碼下的目錄資料庫子集建立一個目錄數結構,即可以是一個網站對應的目錄資料庫子集建立一個目錄數結構。
將上述查詢的與目標網站相匹配的目錄資料庫子集確定為該目標網站的目錄字典,採用目錄掃描技術對上述目錄字典進行掃描,查找該目錄字典中的脆弱性目錄,當查找到脆弱性目錄時,及時修改目標網站的網站架構。
上述可以只採用結構化信息匹配的方法查詢與目標網站相匹配的目錄資料庫子集,也可以只採用目錄數結構匹配的方法查詢與目標網站相匹配的目錄資料庫子集,或者還可以,先採用結構化信息匹配的方法篩選與目標網站相匹配的目錄資料庫子集,將篩選出的目錄資料庫子集再通過目錄樹結構匹配的方法進一步進行篩選,得到與目標網站相匹配的目錄資料庫子集,或者還可以,先採用目錄樹結構篩選與目標網站向匹配的目錄資料庫子集,再將篩選出的目錄資料庫子集通過結構化信息進行進一步的篩選,得到與目標網站相匹配的目錄資料庫子集。
如果在上述目錄字典中無法查找到脆弱性目錄,則可以適當放寬上述查詢條件,比如說,降低上述預設值,或者減少一些進行目錄資料庫子集篩選的結構化信息等等,得到放寬條件後的目錄字典,再對該目錄字典進行掃描。
本發明實施例提供的目錄資料庫查詢方法,通過模式匹配方法從目錄資料庫中查詢與目標網站相匹配的目錄資料庫子集,提高了查詢的效率。
實施例3
本發明實施例提供了一種目錄資料庫生成裝置,該裝置用於執行本發明實施例1提供的目錄資料庫生成方法。
如圖3所示,本發明實施例提供的目錄資料庫生成裝置,包括第一確定模塊310、獲取模塊320、第二獲取模塊330及生成模塊340;
上述第一確定模塊310,用於獲取目標網站的網站架構,根據該網站架構確定爬蟲策略;
上述獲取模塊320,用於根據上述爬蟲策略獲取目標網站的源碼數據;
上述第二確定模塊330,用於根據獲取源碼數據的路徑確定源碼數據在目錄資料庫中的主鍵,根據源碼數據的特徵參數確定源碼數據在目錄資料庫中的從鍵,上述特徵參數包括:源碼數據的類型、IP位址、腳本語言、文件類型、目錄深度及目錄廣度;
上述生成模塊340,用於根據上述主鍵和從鍵確定目標網站的源碼數據在目錄資料庫中的存儲目錄,並存儲上述源碼數據,生成目錄資料庫。
上述目標網站為開源建站平臺,比如說,上述目標網站可以為Github、站長之家等等,當然還可以是其它網站,本發明實施例並不限定上述目標網站的具體類型。
其中,上述獲取模塊320根據爬蟲策略獲取目標網站的源碼數據是通過解析單元和獲取單元實現的,具體包括:
上述解析單元,用於採用多線程方式從目標網站的網頁數據流中解析源碼壓縮包;上述獲取單元,用於對源碼壓縮包進行處理,獲取目標網站的源碼數據。
本發明實施例提供的目錄資料庫生成裝置,生成的目錄資料庫存儲有大量的數據信息,並且,根據主鍵和從鍵確定目標網站的源碼數據在目錄資料庫中的存儲路徑,可以方便進行目錄查詢,因此,在進行目錄掃描時,更容易掃描到脆弱性目錄,從而及時對網站架構進行調整,保護網站的安全。
實施例4
本發明實施例提供了一種目錄資料庫查詢裝置,該裝置用於執行本發明實施例2提供的目錄資料庫查詢方法。
如圖4所示,本發明實施例提供的目錄資料庫查詢裝置,包括獲取模塊410和查詢模塊420;
上述獲取模塊410,用於設定目標網站的爬蟲策略,根據爬蟲策略獲取目標網站的Sitemap,上述爬蟲策略包括設定爬蟲起始URL、目標網站的加密數據及請求的標頭信息;
上述查詢模塊420,用於根據目標網站的Sitemap及預先生成的目錄資料庫,採用模式匹配方法從目錄資料庫蟲查詢與目標網站匹配的目錄資料庫子集,上述模式匹配包括網站結構化信息匹配及目錄樹結構匹配。
在採用網絡爬蟲技術獲取目標網站的Sitemap時,需要設定爬取的起始URL,由此而網站設置有反爬蟲機制,為了規避某些網站的反爬蟲機制,需要設定目標網站的加密數據及請求的標頭信息,上述目標網站的加密數據可以是目標網站的cookie,上述請求的標頭信息可以是請求的header,將上述設置的爬蟲的起始URL、目標網站的加密數據及請求的標頭信息確定為目標網站的爬蟲策略,根據該爬蟲策略對目標網站進行爬取。
本發明實施例提供的目錄資料庫查詢裝置,通過模式匹配方法從目錄資料庫中查詢與目標網站相匹配的目錄資料庫子集,提高了查詢的效率。
本發明實施例所提供的目錄資料庫生成裝置和目錄資料庫查詢裝置可以為設備上的特定硬體或者安裝於設備上的軟體或固件等。本發明實施例所提供的裝置,其實現原理及產生的技術效果和前述方法實施例相同,為簡要描述,裝置實施例部分未提及之處,可參考前述方法實施例中相應內容。所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,前述描述的系統、裝置和單元的具體工作過程,均可以參考上述方法實施例中的對應過程,在此不再贅述。
在本發明所提供的實施例中,應該理解到,所揭露裝置和方法,可以通過其它的方式實現。以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,又例如,多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明提供的實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬碟、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光碟等各種可以存儲程序代碼的介質。
應注意到:相似的標號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨後的附圖中不需要對其進行進一步定義和解釋,此外,術語「第一」、「第二」、「第三」等僅用於區分描述,而不能理解為指示或暗示相對重要性。
最後應說明的是:以上所述實施例,僅為本發明的具體實施方式,用以說明本發明的技術方案,而非對其限制,本發明的保護範圍並不局限於此,儘管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:任何熟悉本技術領域的技術人員在本發明揭露的技術範圍內,其依然可以對前述實施例所記載的技術方案進行修改或可輕易想到變化,或者對其中部分技術特徵進行等同替換;而這些修改、變化或者替換,並不使相應技術方案的本質脫離本發明實施例技術方案的精神和範圍。都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述權利要求的保護範圍為準。