配時,過濾出來的沒有去重過的URL作為 去重規(guī)則的生成基準(zhǔn),以完善去重規(guī)則庫以及擴大URL去重范圍。本發(fā)明實施例公開了兩 種方法生成該去重規(guī)則,一種是通過URL的數(shù)據(jù)結(jié)構(gòu)生成去重規(guī)則,另一種是通過將已經(jīng) 存在的去重規(guī)則應(yīng)用到新的域名下,并形成新的去重規(guī)則。以下作詳細(xì)介紹:
[0098] 實施例二
[0099] 請參見圖5,其為本發(fā)明實施例的第一種去重規(guī)則生成方法的流程圖,其包括以下 步驟:
[0100] S501,獲取要生成去重規(guī)則的域名下的統(tǒng)一資源定位符數(shù)據(jù)。即從網(wǎng)站服務(wù)器的 數(shù)據(jù)中心讀取host部分相同的URL,讀取的URL需要是沒有重寫過的。
[0101] S502,對所述獲取的統(tǒng)一資源定位符進行聚類。具體來說,按照長度和字符字典序 進行對步驟S501讀取的URL進行聚類。經(jīng)過聚類后的URL可以使系統(tǒng)運算更快速,提高去 重規(guī)則生成的效率。
[0102] 所述長度是指URL的段的長度,或者說URL中由"/"符號分割出來的段的數(shù)目,例 如,"http://www.qq. com/news/getNews?type=sports&date=20131120&id=l" 和"http:// www.qq. com/news/getNews?type=science&date=20131121&id=2"這兩個URL中包括的"/" 符號的數(shù)目均為兩個,則認(rèn)為這兩個URL長度相同。
[0103] 所述字符字典序是指URL中的字符在字典中的排序,例如"http://www. aa. com/ news/getNews?type=sports&date=20131120&id=l,' 和"http://www. aa. com/news/getNew s?type=science&date=20131121&id=2 "這兩個URL的域名部分都包括"aa",可以將這兩 個URL歸為同一類;"http://www.bb. com/news/getNews?type=sports&date=20131120&i (1=1"和"111^卩://\¥¥¥.1313.(3〇111/116¥8/^6七他¥8?七5^6=8(^611〇6&(13七6=20131121&1(1=2"這兩個 URL的域名部分都包括"bb",可以將這兩個URL歸為同一類。
[0104] S503,將聚類后的統(tǒng)一資源定位符按照域名參數(shù)部分、后綴部分、分段數(shù)目部分以 及分段參數(shù)部分進行分割,并形成多條統(tǒng)計信息。
[0105] 具體來說,本步驟即是對聚類后的URL進行結(jié)構(gòu)分析,并形成如{host,suffix,se ctions,index,path}這種形式的統(tǒng)計信息。統(tǒng)計信息可以存放到網(wǎng)站服務(wù)器的存儲器中, 也可以存放到系統(tǒng)緩存中。其中,index是path部分的索引位置。
[0106] 例如,"http://www.qq.com/news/sports/20131120/1.html" 這個URL的統(tǒng)計信 息是{www.qq.com,html, 4, 0/1/2/3,news/sport/20131120/1},index表不path部分的存 儲位置,即 "0/1/2/3" 與 "news/sport/20131120/1" --對應(yīng)。
[0107] S504,獲取經(jīng)過分割后相同結(jié)構(gòu)的統(tǒng)計信息。
[0108] 例如,"http://www.qq.com/news/sports/20131120/1.html"這個URL的統(tǒng)計信息 是{www. qq. com, html,4, 0/1/2/3, news/sport/20131120/1} ; "http://www. qq. com/news/ science/20131121/2. html" 這個 URL 的統(tǒng)計信息是{www. qq. com, html, 4, 0/1/2/3, news/ science/20131121/2},則認(rèn)為這兩個URL的統(tǒng)計信息的結(jié)構(gòu)相同。
[0109] S505,將相同結(jié)構(gòu)的統(tǒng)計信息中值不同的對應(yīng)分段參數(shù)值替換為重寫標(biāo)識,并通 過替換過重寫標(biāo)識的統(tǒng)計信息生成新的去重規(guī)則。
[0110] 例如,對于{www.qq.com,html, 4, 0/1/2/3,news/sport/20131120/l}和{www. qq.com,html, 4, 0/1/2/3,news/science/20131121/2}這兩個統(tǒng)計信息,根據(jù)index的數(shù) 值,分別對path部分的各個分段參數(shù)進行比對,如果對應(yīng)分段參數(shù)的值不同,則將其替 換成重寫標(biāo)識,這兩個統(tǒng)計信息經(jīng)過重寫標(biāo)識的替換后即生成{www.qq.com,html,4, 0/1 /2/3,news/*/*/*},然后去掉統(tǒng)計信息中的index部分,便形成了新的去重規(guī)則:{www. qq.com,html, 4,news/*/*/*}。至此,將新生成的去重規(guī)則存入去重規(guī)則庫中,以供URL去 重匹配時查詢使用。
[0111] 請參見圖6,其為本發(fā)明實施例的第一種去重規(guī)則生成方法的另一種流程圖,其包 括以下步驟:
[0112] S601,獲取要生成去重規(guī)則的域名下的統(tǒng)一資源定位符數(shù)據(jù)。
[0113]S602,過濾掉獲取的所述統(tǒng)一資源定位符數(shù)據(jù)中重寫過的統(tǒng)一資源定位符。由于 生成統(tǒng)計信息時,要對URL的結(jié)構(gòu)以及分段參數(shù)和參數(shù)值進行分析,而重寫后的URL無法識 別分段參數(shù),為了確保運算不出錯,因而本步驟進一步地對獲取的URL進行過濾,去除重寫 過的URL。
[0114] 具體來說,可以將步驟S601獲取的URL按照實施例一中所述的匹配算法(即表1 的去重匹配算法)與去重規(guī)則庫中已有的去重規(guī)則進行匹配,如果一個URL可以匹配出對應(yīng) 的去重規(guī)則,那么說明這個URL是被重寫過的,則將其過濾掉。
[0115]S603,對所述獲取的統(tǒng)一資源定位符按照長度和字符字典序進行聚類。
[0116]S604,將聚類后的統(tǒng)一資源定位符按照域名參數(shù)部分、后綴部分、分段數(shù)目部分以 及分段參數(shù)部分進行分割,并形成多條統(tǒng)計信息。
[0117]S605,獲取經(jīng)過分割后相同結(jié)構(gòu)的統(tǒng)計信息。
[0118]S606,將相同結(jié)構(gòu)的統(tǒng)計信息中值不同的對應(yīng)分段參數(shù)值替換為重寫標(biāo)識,并通 過替換過重寫標(biāo)識的統(tǒng)計信息生成新的去重規(guī)則。
[0119] S607,將新的去重規(guī)則與同一域名下所有相同結(jié)構(gòu)的統(tǒng)一資源定位符進行匹配驗 證。本步驟的目的是對新生成的去重規(guī)則作的可用性作進一步的驗證。
[0120] 具體來說,驗證的過程仍然可以采用實施例一中所述的匹配算法(即表1的去重 匹配算法)。首先,獲取與新的去重規(guī)則擁有相同域名參數(shù)、后綴、分段數(shù)目的URL;其次,將 新的去重規(guī)則與所述獲取的URL進行匹配;當(dāng)匹配到對應(yīng)的URL的數(shù)目超過設(shè)定閾值時,說 明這個新生成的去重規(guī)則可以被用來識別URL是否被重寫,則驗證通過。
[0121]S608,對新的去重規(guī)則設(shè)置一個待審核標(biāo)識。為了進一步防止系統(tǒng)運算出錯,影響 后續(xù)去重規(guī)則的自動生成以及URL去重程序的自動運行,所以對于新生成的去重規(guī)則打上 一個待審核標(biāo)識,以供人工對該新的去重規(guī)則進行核實檢查,當(dāng)核實通過后便去除該待審 核標(biāo)識使該去重規(guī)則被正式投入使用。
[0122] 本實施例的方法可以自動生成去重規(guī)則,對去重規(guī)則庫進一步地完善,從而使實 施例一的去重方法在對URL去重時更加高效與準(zhǔn)確,進而可以進一步地提高對URL安全漏 洞的檢測效率以及在統(tǒng)計CGI的流量時提高數(shù)據(jù)分析效率。
[0123] 實施例三
[0124] 請參見圖7,其為本發(fā)明實施例的第二種去重規(guī)則生成方法的流程圖,其包括以下 步驟:
[0125]S701,獲取預(yù)設(shè)的去重規(guī)則庫中已有的去重規(guī)則,所述去重規(guī)則的結(jié)構(gòu)包括域名 參數(shù)部分、后綴部分、分段數(shù)目部分以及重寫規(guī)則部分。
[0126] S702,獲取要生成去重規(guī)則的域名下的多個統(tǒng)一資源定位符數(shù)據(jù)。獲取的URL數(shù) 量不能太少,一般來說不能少于5000個。
[0127] S703,通過已有的去重規(guī)則的后綴部分和重寫規(guī)則部分,對要生成去重規(guī)則的域 名下的多個統(tǒng)一資源定位符進行匹配。
[0128] S704,當(dāng)匹配到的統(tǒng)一資源定位符的數(shù)目大于設(shè)定的閾值,則將要生成去重規(guī)則 的域名替換對應(yīng)的去重規(guī)則中的域名參數(shù)部分,并生成新的去重規(guī)則。
[0129] 舉例來說,假設(shè){www.qq.com,html, 4,news/*/*/*}是去重規(guī)則庫中一個已有的 去重規(guī)則,其后綴部分和重寫規(guī)則部分分別是"html"和"news/*/*/*",用這兩部分對要 生成去重規(guī)則的URL進行匹配,匹配可以采用實施例一中所述的匹配算法(即表1的去重 匹配算法),如果匹配出的URL超過設(shè)定的閾值(如100個),那么說明這匹配出的100個 URL是被重寫過的,也可以說明這些要去重的URL適用"html"和"news/*/*/*"這兩部 分來去重,那么直接要去重的URL的域名替換到對應(yīng)的去重規(guī)則中的域名參數(shù)部分,假如 要去重的URL的域名是"www.sina.com",那么替換后生成的新的去重規(guī)則就是:{www. qq.com,html,4,news/氺/氺/氺}
[0130] 請參見圖8,其為本發(fā)明實施例的第二種去重規(guī)則生成方法的另一種流程圖,其包 括以下步驟:
[0131]S801,獲取預(yù)設(shè)的去重規(guī)則庫中已有的去重規(guī)則,所述去重規(guī)則的結(jié)構(gòu)包括域名 參數(shù)部分、后綴部分、分段數(shù)目部分以及重寫規(guī)則部分。
[0132] S802,對已有的去重規(guī)則中后綴部分和重寫規(guī)則部分相同的去重規(guī)則,按照不同 域名的數(shù)目進行排序。
[0133] S803,根據(jù)排序結(jié)果,獲取不同域名的數(shù)目最多的設(shè)定數(shù)量個去重規(guī)則的后綴部 分和重寫規(guī)則部分。
[0134] 去重規(guī)則庫中的去重規(guī)則的數(shù)量通常是很多的,如果將已有的所有去重規(guī)則都作 一次匹配,那么勢必生成去重規(guī)則的效率會很低。因而為了提高運算效率,步驟S802中先 對相同suffix部分和rule_pathe部分的已有去重規(guī)則進行排序,然后在步驟S803中找出 排序結(jié)果中,不同域名的數(shù)目最多的設(shè)定數(shù)量個去重規(guī)則。
[0135] 例如,假設(shè)去重規(guī)則庫中包括,6個去重規(guī)則:
[0136] {www.aa.com,html, 4,news/*/*/*}
[0137] {www.bb.com,html, 4,news/*/*/*}
[0138] {www.cc.com,html, 4,news/*/*/*}
[0139] {www.aa.com,html, 3,news/*/*}
[0140] {www.bb.com,html, 3,news/*/*}
[0141] {www.aa.com,html, 3,news/*}
[0142] 經(jīng)過排序后,包含"html"和"ne