一種防護規則生成方法及裝置製造方法
2023-05-20 15:34:46 1
一種防護規則生成方法及裝置製造方法
【專利摘要】本申請公開了一種防護規則生成方法及裝置,該方法包括:當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、該參數的參數類型及該參數的參數值進行記錄,直至該記錄過程滿足預設記錄結束條件,統計每種參數對應的個數,並依據每種參數對應的個數,確定所述每種參數的屬性為所述目標URL的必備參數或非必備參數;統計每種參數的每種參數類型對應的個數,並依據所述每種參數的每種參數類型對應的個數,確定每種參數的合法參數類型;統計每種參數的參數值的數據範圍;將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,進而生成與所述目標URL對應的防護規則。
【專利說明】一種防護規則生成方法及裝置
【技術領域】
[0001]本申請涉及網際網路應用【技術領域】,尤其是一種防護規則生成方法及裝置。
【背景技術】
[0002]在當今數字時代,網際網路已成為無可替代的信息交流方式,網際網路安全技術日新月異。但是,網際網路攻擊技術也在不斷出現新的攻擊手段,攻擊手段之一為漏洞攻擊,即針對網際網路伺服器上發布的網站網頁中的漏洞進行攻擊,由於這些網頁中的漏洞沒有進行打補丁處理,所述伺服器往往成為攻擊對象。具體的,攻擊者在向所述伺服器(伺服器上發布有網站網頁)發送的請求數據包的URL欄位中封裝入攻擊數據,並將所述封裝有攻擊數據的請求數據包向所述伺服器進行發送。為避免伺服器遭受網絡攻擊,需要對伺服器進行防護,即對發送到伺服器的請求數據包進行檢測。
[0003]但是,該防護過程需要依賴於一定的防護規則,即依據所述防護規則對請求數據包是否安全作出界定。因此,亟需一種防護規則生成方法,用以生成防護伺服器過程中應用的防護規則。
【發明內容】
[0004]有鑑於此,本申請提供了一種防護規則生成方法及裝置,用以生成防護伺服器過程中應用的防護規則。本申請提供的技術方案如下:
[0005]一種防護規則生成方法,所述方法包括:
[0006]當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、所述參數的參數類型及所述參數的參數值進行記錄,直至所述記錄過程滿足預設記錄結束條件;
[0007]依據各個參數的參數名稱,統計每種參數對應的個數;依據所述每種參數對應的個數,確定所述每種參數的屬性;其中,所述屬性為所述目標URL的必備參數或所述目標URL的非必備參數;
[0008]統計所述每種參數的每種參數類型對應的個數;依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;
[0009]統計所述每種參數的參數值的數據範圍;
[0010]將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,生成與所述目標URL對應的防護規則。
[0011]上述方法,優選的,統計接收到的多個請求數據包中所述目標URL的總個數;
[0012]其中,所述依據所述每種參數對應的個數,確定所述每種參數的屬性,包括:
[0013]依據所述所述目標URL的總個數及所述每種參數對應的個數,獲得所述每種參數對應的缺失比值,並判斷所述每種參數的缺失比值是否未超過第一預設閾值;若是,將該種參數確定為必備參數;否則,將該種參數確定為非必備參數
[0014]上述方法,優選的,所述依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型,包括:
[0015]判斷所述每種參數的每種參數類型的個數是否超過第二預設閾值;若是,將該種參數類型確定為該種參數的合法參數類型。
[0016]上述方法,優選的,所述統計所述每種參數的參數值的數據範圍,包括:
[0017]判斷所述每種參數的參數值的屬性,其中,所述屬性為字符或數值;
[0018]若所述屬性為字符,統計所述字符屬性的參數值的字符長度範圍;
[0019]若所述屬性為數值,統計所述數值屬性的參數值的數值範圍。
[0020]上述方法,優選的,還包括:
[0021]接收用戶向所述伺服器發送的後續請求數據包;
[0022]判斷所述後續請求數據包的所述目標URL欄位中是否包含有屬性為必備參數的
第一參數;
[0023]若所述後續請求數據包的所述目標URL欄位中包含有屬性為必備參數的第一參數,判斷所述第一參數的參數類型是否為對應的合法參數類型;若所述第一參數的參數類型為對應的合法參數類型,判斷所述第一參數的參數值是否符合對應的數據範圍,若所述第一參數的參數值符合對應的數據範圍,判斷所述後續請求數據包的所述目標URL欄位中是否包含有所述屬性為非必備參數的第二參數;
[0024]若所述後續請求數據包的所述目標URL欄位中未包含有屬性為必備參數的第一參數、所述第一參數的參數類型不為對應的合法參數類型、或所述第一參數的參數值不符合對應的數據範圍,刪除所述後續請求數據包;
[0025]若所述後續請求數據包的所述目標URL欄位中包含有所述屬性為非必備參數的第二參數,判斷所述第二參數的參數類型是否為對應的合法參數類型;
[0026]若所述第二參數的參數類型為對應的合法參數類型,判斷所述第二參數的參數值是否符合對應的數據範圍;若是,將所述後續請求數據包向所述伺服器進行發送;否則,刪除所述後續請求數據包;
[0027]若所述第二參數的參數類型不為對應的合法參數類型,刪除所述後續請求數據包。
[0028]本申請還提供了一種防護規則生成裝置,所述裝置包括:
[0029]記錄單元,用於當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、所述參數的參數類型及所述參數的參數值進行記錄,直至所述記錄過程滿足預設記錄結束條件;
[0030]第一規則項生成單元,用於依據各個參數的參數名稱,統計每種參數對應的個數;依據所述每種參數對應的個數,確定所述每種參數的屬性;其中,所述屬性為所述目標URL的必備參數或所述目標URL的非必備參數;
[0031]第二規則項生成單元,用於統計所述每種參數的每種參數類型對應的個數;依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;
[0032]第三規則項生成單元,用於統計所述每種參數的參數值的數據範圍;
[0033]規則生成單元,用於將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,生成與所述目標URL對應的防護規則。
[0034]上述裝置,優選的,還包括:[0035]統計單元,用於統計接收到的多個請求數據包中所述目標URL的總個數;
[0036]所述第一規則項生成單元包括:
[0037]第一統計子單元,用於依據各個參數的參數名稱,統計每種參數對應的個數;
[0038]第一確定子單元,用於依據所述每種參數對應的個數,確定所述每種參數的屬性;
[0039]其中,所述第一確定子單元包括:
[0040]第一判斷子單元,用於依據所述所述目標URL的總個數及所述每種參數對應的個數,獲得所述每種參數對應的缺失比值,並判斷所述每種參數的缺失比值是否未超過第一預設閾值;若是,觸發第一結果子單元;否則,觸發第二結果子單元;
[0041]第一結果子單元,用於將該種參數確定為所述目標URL的必備參數;
[0042]第二結果子單元,用於將該種參數確定為所述目標URL的非必備參數。
[0043]上述裝置,優選的,所述第二規則項生成單元包括:
[0044]第二統計子單元,用於統計所述每種參數的每種參數類型對應的個數;
[0045]第二確定子單元,用於依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;
[0046]其中,所述第二確定子單元包括:
[0047]第二判斷子單元,用於判斷所述每種參數的每種參數類型的個數是否超過第二預設閾值;若是,觸發第三結果子單元;
[0048]第三結果子單元,用於將該種參數類型確定為該種參數的合法參數類型。
[0049]上述裝置,優選的,所述第三規則項生成單元包括:
[0050]第三判斷子單元,用於判斷所述每種參數的參數值的屬性,其中,所述屬性為字符或數值;
[0051]第四結果子單元,用於若所述屬性為字符,統計所述字符屬性的參數值的字符長度範圍;
[0052]第五結果子單元,用於若所述屬性為數值,統計所述數值屬性的參數值的數值範圍。
[0053]上述裝置,優選的,還包括:
[0054]接收單元,用於接收用戶向所述伺服器發送的後續請求數據包;
[0055]第一判斷單元,用於判斷所述後續請求數據包的所述目標URL欄位中是否包含有屬性為必備參數的第一參數;若是,觸發第二判斷單元;若否,觸發第一結果單元。
[0056]第二判斷單元,用於判斷所述第一參數的參數類型是否為對應的合法參數類型;若是,觸發第三判斷單元;若否,觸發第一結果單元;
[0057]第三判斷單元,用於判斷所述第一參數的參數值是否符合對應的數據範圍,若是,觸發第四判斷單元;若否,觸發第一結果單元;
[0058]第四判斷單元,用於判斷所述後續請求數據包的所述目標URL欄位中是否包含有所述屬性為非必備參數的第二參數;若是,觸發第五判斷單元;
[0059]第一結果單元,用於刪除所述後續請求數據包;
[0060]第五判斷單元,用於判斷所述第二參數的參數類型是否為對應的合法參數類型;若是,觸發第六判斷單元,若否,觸發第一結果單元;[0061]第六判斷單元,用於判斷所述第二參數的參數值是否符合對應的數據範圍;若是,觸發第二結果單元;若否,觸發第一結果單元;
[0062]第二結果單元,用於將所述後續請求數據包向所述伺服器進行發送。
[0063]由以上的技術方案可知,本申請當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、該參數的參數類型及該參數的參數值進行記錄,依據各個參數的參數名稱,分別統計每種參數對應的個數,並依據每種參數對應的個數,確定所述每種參數的屬性為所述目標URL的必備參數或所述目標URL的非必備參數;統計所述每種參數的每種參數類型對應的個數,並依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;統計所述每種參數的參數值的數據範圍;則可將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,進而生成與所述目標URL對應的防護規則。
【專利附圖】
【附圖說明】
[0064]為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請的一些實施例,對於本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0065]圖1為本申請提供的一種防護規則生成方法一個實施例的流程圖;
[0066]圖2為本申請提供的一種防護規則生成方法又一實施例的部分流程圖;
[0067]圖3為本申請提供的一種防護規則生成裝置一個實施例的結構示意圖;
[0068]圖4為本申請提供的一種防護規則生成裝置又一實施例的部分結構示意圖。
【具體實施方式】
[0069]下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
[0070]請參閱圖1,其示出了本申請提供的一種防護規則生成方法一個實施例的流程圖,本實施例可以包括:
[0071]步驟101:當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、所述參數的參數類型及所述參數的參數值進行記錄,直至所述記錄過程滿足預設記錄結束條件。
[0072]其中,所述規則生成指令為配置員發送的規則生成指令,即配置員需要生成防護規則時,可以發送所述規則生成指令。當接收到所述規則生成指令時,獲取用戶向伺服器發送的請求數據包,並對所述請求數據包的目標URL欄位中的參數的參數信息進行記錄,直至所述記錄過程滿足預設記錄結束條件。
[0073]需要說明的是,用戶向所述伺服器發送多個請求數據包,每個所述請求數據包中包含有一個URL欄位,其中,所述每個請求數據包中包含的URL欄位可以相同,也可以不同,則所述多個請求數據包對應至少一種URL欄位。本步驟中的所述目標URL欄位為任意一種URL 欄位,例如,http://vide0.sina.com.cn/sports/?show=original,則步驟 104 中生成的防護規則與該目標URL欄位對應。當然,本步驟只是對一種URL欄位(目標URL欄位)對應防護規則生成方法的說明,該方法同樣適用於所述多個請求數據包中對應的其他種類的URL欄位。
[0074]其中,所述記錄結束條件可以是預設時間長度,可以是預設次數閾值,也可以是兩者的結合。
[0075]若所述記錄結束條件為預設時間長度,則當接收到所述規則生成指令時,記錄時長,當記錄的時長滿足所述預設時間長度時,確定所述記錄過程滿足所述記錄結束條件。
[0076]若所述記錄結束條件為預設次數閾值,則當接收到所述規則生成指令時,將預設的次數參數設置為0,每獲取到一個請求數據包,則對所述次數參數加1,當所述次數參數的值滿足所述預設次數閾值時,確定所述記錄過程滿足所述記錄結束條件。
[0077]若所述記錄結束條件為預設時間長度或預設次數閾值,當接收到所述規則生成指令時,記錄時長,同時將預設的次數參數設置為0,每獲取到一個請求數據包,則對所述次數參數加1,當所述時長達到所述預設時間長度或所述次數參數的值達到所述預設次數閾值時,確定所述記錄過程滿足所述記錄結束條件。 [0078]需要說明的是,所述記錄過程中會接收到用戶向所述伺服器發送的多個請求數據包,所述請求數據包的所述目標URL欄位中的參數可以是一個,也可以是多個。
[0079]所述記錄過程,需要記錄所述多個請求數據包的所述目標URL欄位中的參數的參數名稱、參數的參數類型及參數的參數值。其中,所述參數的參數類型可以包括,字符串、數值、電話號碼、郵政編碼、身份證號等。例如,記錄的參數名稱、參數類型及參數值分別為:name、字符串、張三;age、數值、14 ;code、郵政編碼、072450。
[0080]其中,所述參數類型的確定方式,可以是依據預先設置的正則表達式集合進行確定,即將所述參數值與所述各種正則表達式進行比對,若符合某種正則表達式,則將所述正則表達式表示的參數類型確定為所述參數的參數類型。例如,預先設置有字符串、數值、身份證號、郵政編碼等多種正則表達式。需要說明的是,所述正則表達式的集合是可以由配置員預先配置的,即接收配置指令及正則表達式數據,其中,所述配置指令中包含有正則表達式的標識,將所述配置正則表達式的數據生成與所述正則表達式標識相對應的正則表達式。
[0081]步驟102:依據各個參數的參數名稱,統計每種參數對應的個數;依據所述每種參數對應的個數,確定所述每種參數的屬性;其中,所述屬性為所述目標URL的必備參數或所述目標URL的非必備參數。
[0082]其中,所述步驟101中記錄的所述目標URL中的參數為多種,需要說明的是,所述統計每種參數對應的個數,依據的是所述各個參數的參數名稱。例如,name是一種參數,age是一種參數,統計所述name的個數,即可獲得所述name參數對應的個數,統計所述age的個數,即可獲得所述age參數對應的個數。
[0083]其中,依據所述目標URL中的每種參數對應的個數,確定所述每種參數的屬性。所述確定過程,可以包括但不限定於以下幾種方式:
[0084]一是將所述每種參數對應的個數與某一預設個數閾值進行比對,若超過所述預設個數閾值,將該種參數確定為所述目標URL的必備參數,否則,將該種參數確定為所述目標URL的非必備參數,例如,預設個數閾值為100,若所述目標URL中name的個數超過100,則將name確定為所述目標URL的必備參數。
[0085]另一是預先統計接收到的多個請求數據包中所述目標URL的總個數,將所述每種參數對應的個數與所述目標URL總個數進行比對獲得比值,若所述比值超過某一預設比值閾值,將該種參數確定為所述目標URL的必備參數,否則,將該種參數確定為所述目標URL的非必備參數,例如,預設比值閾值為90%,若記錄的所述目標URL的所有參數為1000,name的個數為800,則將name確定為所述目標URL的非必備參數。
[0086]又一是預先統計接收到的多個請求數據包中所述目標URL的總個數,將所述總個數減去所述每種參數對應的個數,獲取所述每種參數對應的缺失個數,將所述每種參數對應的缺失個數與所述目標URL總個數進行比對,獲取所述每種參數對應的缺失比值,將所述缺失比值與預設缺失比值閾值進行比對,若所述缺失比值在所述缺失比值閾值範圍內,將該種參數確定為所述目標URL的必備參數,否則,將該種參數確定為所述目標URL的非必備參數。
[0087]步驟103:統計所述每種參數的每種參數類型對應的個數;依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型。
[0088]其中,所述步驟101中記錄的參數為多種,記錄的每種參數對應的參數類型可以是一種,也可以是多種,統計所述每種參數類型對應的個數,依據所述各個參數,確定某種參數類型為該種參數的合法參數類型。例如,所述步驟101中記錄的所述name對應的參數類型包括字符串類型、數值類型,則在所述字符串及數值參數類型中,依據字符串及數值類型對應的個數,確定name對應合法參數類型,如所述合法參數類型為字符串。
[0089]所述確定過程的方式,可以將所述每種參數類型對應的個數與某一預設個數閾值進行比對,也可以是將所述每種參數類型對應的個數與記錄的所有參數類型的個數進行比對獲得比值,將所述比值與某一預設比值閾值,具體過程請參閱步驟102中參數屬性的確定過程,在此不做贅述。
[0090]步驟104:統計所述每種參數的參數值的數據範圍。
[0091]所述每種參數均對應多個參數值,依據所述各個參數值,可以確定所述每種參數的數據範圍。其中,所述數據範圍可以是數據值的大小範圍,可以是字符串的長度範圍。例如,所述name參數的參數值的數據範圍為5至20個字符長度。
[0092]步驟105:將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,生成與所述目標URL對應的防護規則。
[0093]其中,步驟101中記錄所述目標URL的參數有多種,例如name參數、age參數、tel參數。將所述每種參數及其對應的屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,作為所述目標URL的防護規則中的各條紀錄。
[0094]例如,name的屬性為所述目標URL的必備參數,所述name的合法參數類型為字符串,所述name的數據範圍為5至20個字符長度;age的屬性為所述目標URL的非必備參數,所述age的合法參數類型為數值,所述age的數據範圍為7至58 ;tel的屬性為所述目標URL的非必備參數,所述tel的合法參數類型為字符串,所述tel的數據範圍為7至11。
[0095]其中,所述防護規則的保存形式可以為數據表的形式,也可以是文本文件的形式,當然,所述防護規則的保存形式包括但不限定於上述兩種形式。所述防護規則是與所述目標URL對應的,即可將所述防護規則的標識與將所述目標URL的標識建立對應關係。
[0096]需要說明的是,所述步驟102、103及104步驟可以是依次順序進行,或可以是任意兩者同時執行,也可以是三者同時執行。
[0097]在本實施例中,當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包的目標URL欄位中的參數的參數名稱、該參數的參數類型及該參數的參數值進行記錄,依據各個參數的參數名稱,分別統計每種參數對應的個數,並依據每種參數對應的個數,確定所述每種參數的屬性為所述目標URL的必備參數或所述目標URL的非必備參數;統計所述每種參數的每種參數類型對應的個數,並依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;統計所述每種參數的參數值的數據範圍;則可將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,進而生成與所述所述目標URL對應的防護規則。
[0098]上述實施例可以應用於伺服器,也可以應用於用戶及伺服器外的第三方設備,例如,將上述實施例配置到apache配置文件中,啟動apache,則可將上述實施例加載到apache中。另外,上述實施例中需要利用加鎖及內存共享技術,以解決在多進程和多線程訪問同一計算機資源時的加鎖互斥問題。
[0099]在上一實施例的基礎上,所述記錄過程中還包括:統計接收到的多個請求數據包中所述目標URL的總個數,則上述實施例中的步驟102中的依據所述每種參數對應的個數,確定所述每種參數的屬性,可以通過以下方式實現:
[0100]依據所述目標URL的總個數及所述每種參數對應的個數,獲得所述每種參數對應的缺失比值,並判斷所述每種參數的缺失比值是否未超過第一預設閾值;若是,將該種參數確定為必備參數;否則,將該種參數確定為非必備參數。
[0101]其中,將所述目標URL的總個數減去所述每種參數對應的個數,可以獲得所述每種參數對應的缺失個數,將所述每種參數對應缺失個數與所述目標URL的總個數進行比值計算,獲得所述每種參數對應的缺失比值。例如,所述目標URL的總個數為1000,name參數的個數為800,則name參數的缺失比值為20%。
[0102]其中,所述判斷過程是循環進行的,即將所述每種參數的缺失比值與所述第一預設閾值分別進行比對,獲得所述每種參數對應的屬性。
[0103]需要說明的是,所述第一預設閾值可以是一個,即每種參數的個數均與所述第一預設閾值進行比對。另外,所述第一預設閾值可以是預先設置的固定數值,也可以是接收配置員的設置指令,其中,所述設置指令中包含有數值,將所述數值設置為所述第一預設閾值。
[0104]依據所述第一預設閾值及每種參數對應的缺失比值進行參數屬性值的確定,例如,第一預設閾值為10%,若name參數的缺失比值為20%,則所述name為所述目標URL的非必備參數,若tel參數的缺失比值為4%,則所述tel為所述目標URL的必備參數。
[0105]所述確定方式可以是,預先設置有各個標識與所述各種屬性的對應關係,將各種參數分別與某種標識建立對應關係,則可實現與所述必備屬性建立對應關係。例如,A標識對應所述目標URL的必備參數,B標識對應所述目標URL的非必備參數,將參數與所述A標識建立對應關係,則該種參數被確定為所述目標URL的必備參數,將參數與所述B標識建立對應關係,則該種參數被確定為所述目標URL的非必備參數。[0106]上述實施例中的步驟103中的依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型,可以通過以下方式實現:
[0107]判斷所述每種參數的每種參數類型的個數是否超過第二預設閾值;若是,將該種參數類型確定為該種參數的合法參數類型。
[0108]需要說明的是,所述步驟101中記錄的所述參數的種類是多種的,例如,name參數、age參數、tel參數。每種參數對應的參數類型可以是一種,也可以是多種,例如,所述name對應的參數類型分別有字符串、數值,所述age對應的參數類型有數值、所述tel對應的參數類型有電話號碼、字符串、數值。依據所述每種參數類型的個數,將所述一種或所述多種中的某種參數確定為該種參數的合法參數類型。
[0109]其中,所述判斷過程是循環進行的,即判斷上述實施例中步驟101記錄的所有參數對應的所有參數類型分別是否超過第二預設閾值,依據判斷結果確定所述每種參數對應的合法參數類型。
[0110]例如,所述步驟101中記錄的name參數、age參數、tel參數,需分別確定name對應的合法參數類型,age對應的合法參數類型及tel對應的合法參數類型。所述第一預設閾值為700個,所述name對應的參數類型包括字符串及數值,其中,所述字符串的個數為900個,所述數值的個數為100個,則所述name的合法參數類型為字符串;所述age對應的參數類型包括對應的參數類型包括數值,其中,所述數值的個數為800個,則所述age的合法參數類型為數值;所述tel對應的參數類型包括電話號碼、字符串、數值,其中,所述電話號碼的個數為900個,所述數值的個數為50個,所述數值的個數為50個,則所述tel的合法參數類型為電話號碼。
[0111]需要說明的是,所述第二預設閾值可以是一個,即每種參數類型的個數均與所述第二預設閾值進行比對。另外,所述第二預設閾值可以是預先設置的固定數值,也可以是接收配置員的設置指令,其中,所述設置指令中包含有數值,將所述數值設置為所述第二預設閾值。
[0112]上述實施例中的步驟104可以通過以下方式實現:
[0113]判斷所述每種參數的參數值的屬性,其中,所述屬性為字符或數值;若所述屬性為字符,統計所述字符屬性的參數值的字符長度範圍;若所述屬性為數值,統計所述數值屬性的參數值的數值範圍。
[0114]其中,所述每種參數包括多個參數值,例如,age參數的參數值可以包括7、29、34、58,所述各個參數值的屬性為數值,則統計所述數值屬性的參數值的數值範圍,所述數值範圍為7至58 ;tel參數的參數值可以包括8302452、13702942083、0107385229,所述參數的類型為字符串,則統計所述字符串屬性的參數值的字符長度範圍,所述字符長度範圍為7至11。
[0115]當然,每種參數對應的參數值有多個,則所述參數的參數值的屬性可以包括字符及數值兩種,則既統計字符屬性的參數值的字符長度範圍,且統計數值屬性的參數值的數值範圍。
[0116]請參閱圖2,其示出了本申請提供的一種防護規則生成方法又一實施例的部分流程圖,本實施例可以包括:
[0117]步驟201:接收用戶向所述伺服器發送的後續請求數據包。[0118]所述後續請求數據包指的是上述實施例步驟101中接收到的請求數據包之後發送的請求數據包,即所述步驟101中接收到的所述請求數據包用於生成所述防護規則。本步驟利用所述生成的防護規則對用戶發送到所述伺服器的後續請求數據包進行是否是合法數據包的判斷。
[0119]其中,所述後續請求數據包即步驟101中的請求數據包之後發送的請求數據包。
[0120]用戶向所述伺服器發送後續請求數據包,在所述後續請求數據包被發送至所述伺服器前,接收該後續請求數據包。
[0121]步驟202:判斷所述後續請求數據包的所述目標URL欄位中是否包含有屬性為必備參數的第一參數;若是,執行步驟203,若否,執行步驟208。
[0122]上述實施例步驟102中確定的參數中包括必備參數屬性的參數。獲取所述後續請求數據包的所述目標URL欄位中的各個參數,判斷所述參數中是否包含有屬性為必備參數的第一參數。例如,上述實施例步驟105中的屬性為必備參數的第一參數為name、age,若步驟201中接收的後續請求數據包中的參數為tel、code,沒有包含有所述第一參數,則執行步驟206 ;若步驟201中接收的後續請求數據包中的參數為name、tel,包含有所述第一參數,則執行步驟203。
[0123]步驟203:判斷所述第一參數的參數類型是否為對應的合法參數類型;若是,執行步驟204 ;若否,執行步驟208。
[0124]獲取所述第一參數,並獲取所述第一參數的參數類型,判斷所述參數類型是否為上述實施例步驟103中確定的該第一參數的合法的參數類型。例如,所述第一參數為name,上述實施例步驟103中確定的所述name的合法參數類型為字符串;若步驟201中的所述後續請求數據包中的name參數對應的參數類型為數值,則執行步驟208 ;若步驟201中的所述後續請求數據包中的name參數對應的參數類型為字符串,則執行步驟204。
[0125]步驟204:判斷所述第一參數的參數值是否符合對應的數據範圍,若是,執行步驟
205;若否,執行步驟208。
[0126]獲取所述第一參數對應的參數值,判斷所述參數值是否符合上述實施例步驟104中確定的該參數的參數值對應的數據範圍。例如,所述第一參數為name,上述實施例步驟104中確定的所述name的數據範圍為5至20 ;若步驟201中的所述後續請求數據包中的name參數的數值為abc,則所述字符串的長度為3,並不符合所述數據範圍,則執行步驟
206;若步驟201中的所述後續請求數據包中的name參數的數值為zhangsan,貝U所述字符串的長度為8,符合所述數據範圍,則執行步驟205。
[0127]步驟205:判斷所述後續請求數據包的所述目標URL欄位中是否包含有所述屬性為非必備參數的第二參數;若是,執行步驟206。
[0128]上述實施例步驟102中確定的參數中包括非必備參數屬性的參數。獲取所述後續請求數據包的所述目標URL欄位中的各個參數,判斷所述參數中是否包含有屬性為非必備參數的第二參數。例如,上述實施例步驟105中的屬性為非必備參數的第二參數為tel、code,若步驟201中接收的後續請求數據包中的參數為tel、code,包含有所述第二參數,則執行步驟206。
[0129]步驟206:判斷所述第二參數的參數類型是否為對應的合法參數類型;若是,執行步驟207 ;若否,執行步驟208。[0130]步驟207:判斷所述第一參數的參數值是否符合對應的數據範圍;若是,執行步驟209 ;若否,執行步驟208。
[0131]步驟208:刪除所述後續請求數據包。
[0132]步驟209:將所述後續請求數據包向所述伺服器進行發送。
[0133]需要說明的是,上述步驟202至204與步驟205至207的執行順序並不限定於此,即可先執行步驟205至207的判斷,再執行步驟202至204的判斷。
[0134]在本實施例中,應用上述實施例中步驟105生成的防護規則對用戶發送到伺服器的後續請求數據包進行檢測,將不符合所述防護規則的數據包進行刪除,將符合所述防護規則的數據包向所述伺服器進行發送,實現了依據所述防護規則對數據包的監測目的。
[0135]請參閱圖3,其示出了本申請提供的一種防護規則生成裝置一個實施例的結構示意圖,本實施例可以包括:記錄單元301、第一規則項生成單元302、第二規則項生成單元303、第三規則項生成單元304及規則生成單元305。其中:
[0136]所述記錄單元301,用於當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包的目標URL欄位中的參數的參數名稱、所述參數的參數類型及所述參數的參數值進行記錄,直至所述記錄過程滿足預設記錄結束條件。
[0137]其中,所述規則生成指令為配置員發送的規則生成指令,即配置員需要生成防護規則時,可以向所述記錄單元301發送所述規則生成指令。所述記錄單元301當接收到所述規則生成指令時,獲取用戶向伺服器發送的請求數據包,並對所述請求數據包的所述目標URL欄位中的參數的參數信息進行記錄,直至所述記錄過程滿足預設記錄結束條件。
[0138]需要說明的是,用戶向所述伺服器發送多個請求數據包,每個所述請求數據包中包含有一個URL欄位,其中,所述每個請求數據包中包含的URL欄位可以相同,也可以不同,則所述多個請求數據包對應至少一種URL欄位。本步驟中的所述目標URL欄位為任意一種 URL 欄位,例如,http: //video, sina.com.cn/sports/?show=original,則步驟 104 中生成的防護規則與該目標URL欄位對應。當然,所述記錄單元301隻是對一種URL欄位(目標URL欄位)對應防護規則生成方法的說明,該記錄單元301適用於所述多個請求數據包中對應的其他種類的URL欄位。
[0139]其中,所述記錄結束條件可以是預設時間長度,可以是預設次數閾值,也可以是兩者的結合。
[0140]若所述記錄結束條件為預設時間長度,則所述記錄單元301當接收到所述規則生成指令時,記錄時長,當記錄的時長滿足所述預設時間長度時,確定所述記錄過程滿足所述記錄結束條件。
[0141]若所述記錄結束條件為預設次數閾值,則所述記錄單元301當接收到所述規則生成指令時,將預設的次數參數設置為0,每獲取到一個請求數據包,則對所述次數參數加1,當所述次數參數的值滿足所述預設次數閾值時,確定所述記錄過程滿足所述記錄結束條件。
[0142]若所述記錄結束條件為預設時間長度或預設次數閾值,當所述記錄單元301接收到所述規則生成指令時,記錄時長,同時將預設的次數參數設置為0,每獲取到一個請求數據包,則對所述次數參數加1,當所述時長達到所述預設時間長度或所述次數參數的值達到所述預設次數閾值時,確定所述記錄過程滿足所述記錄結束條件。[0143]需要說明的是,所述記錄單元301記錄過程中會接收到用戶向所述伺服器發送的多個請求數據包,所述請求數據包的所述目標URL欄位中的參數可以是一個,也可以是多個。
[0144]所述記錄單元301記錄過程,需要記錄所述多個請求數據包的所述目標URL欄位中的參數的參數名稱、參數的參數類型及參數的參數值。其中,所述參數的參數類型可以包括,字符串、數值、電話號碼、郵政編碼、身份證號等。例如,記錄的參數名稱、參數類型及參數值分別為:name、字符串、張三;age、數值、14 ;code、郵政編碼、072450。
[0145]其中,所述記錄單元301對所述參數類型的確定方式,可以是依據預先設置的正則表達式集合進行確定,即將所述參數值與所述各種正則表達式進行比對,若符合某種正則表達式,則將所述正則表達式表示的參數類型確定為所述參數的參數類型。例如,預先設置有字符串、數值、身份證號、郵政編碼等多種正則表達式。需要說明的是,所述正則表達式的集合是可以由配置員預先配置的,即接收配置指令及正則表達式數據,其中,所述配置指令中包含有正則表達式的標識,將所述配置正則表達式的數據生成與所述正則表達式標識相對應的正則表達式。
[0146]所述第一規則項生成單元302,用於依據各個參數的參數名稱,統計每種參數對應的個數;依據所述每種參數對應的個數,確定所述每種參數的屬性;其中,所述屬性為必備參數或非必備參數。
[0147]其中,所述記錄單元301記錄的所述參數為多種,需要說明的是,所述第一規則項生成單元302統計每種參數對應的個數,依據的是所述各個參數的參數名稱。例如,name是一種參數,age是一種參數,統計所述name的個數,即可獲得所述name參數對應的個數,統計所述age的個數,即可獲得所述age參數對應的個數。
[0148]其中,所述第一規則項生成單元302依據所述目標URL中的每種參數對應的個數,確定所述每種參數的屬性。所述第一規則項生成單元302的確定過程,可以包括但不限定於以下幾種方式:
[0149]一是將所述每種參數對應的個數與某一預設個數閾值進行比對,若超過所述預設個數閾值,將該種參數確定為所述目標URL的必備參數,否則,將該種參數確定為所述目標URL的非必備參數,例如,預設個數閾值為100,若所述目標URL中name的個數超過100,則將name確定為所述目標URL的必備參數。
[0150]另一是預先統計接收到的多個請求數據包中所述目標URL的總個數,將所述每種參數對應的個數與所述目標URL總個數進行比對獲得比值,若所述比值超過某一預設比值閾值,將該種參數確定為所述目標URL的必備參數,否則,將該種參數確定為所述目標URL的非必備參數,例如,預設比值閾值為90%,若記錄的所述目標URL的所有參數為1000,name的個數為800,則將name確定為所述目標URL的非必備參數。
[0151]又一是預先統計接收到的多個請求數據包中所述目標URL的總個數,將所述總個數減去所述每種參數對應的個數,獲取所述每種參數對應的缺失個數,將所述每種參數對應的缺失個數與所述目標URL總個數進行比對,獲取所述每種參數對應的缺失比值,將所述缺失比值與預設缺失比值閾值進行比對,若所述缺失比值在所述缺失比值閾值範圍內,將該種參數確定為所述目標URL的必備參數,否則,將該種參數確定為所述目標URL的非必備參數。[0152]所述第二規則項生成單元303,用於統計所述每種參數的每種參數類型對應的個數;依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型。
[0153]其中,所述記錄單元301記錄的參數為多種,記錄的每種參數對應的參數類型可以是一種,也可以是多種,所述第二規則項生成單元303統計所述每種參數類型對應的個數,依據所述各個參數,確定某種參數類型為該種參數的合法參數類型。例如,所述記錄單元301記錄的所述name對應的參數類型包括字符串類型、數值類型,則所述第二規則項生成單元303在所述字符串及數值參數類型中,依據字符串及數值類型對應的個數,確定name對應合法參數類型,如所述合法參數類型為字符串。
[0154]所述第二規則項生成單元303確定過程的方式,可以將所述每種參數類型對應的個數與某一預設個數閾值進行比對,也可以是將所述每種參數類型對應的個數與記錄的所有參數類型的個數進行比對獲得比值,將所述比值與某一預設比值閾值,具體過程請所述第一規則項生成單元302參數屬性的確定過程,在此不做贅述。
[0155]所述第三規則項生成單元304,用於統計所述每種參數的參數值的數據範圍。
[0156]所述每種參數均對應多個參數值,所述第三規則項生成單元304依據所述各個參數值,可以確定所述每種參數的數據範圍。其中,所述數據範圍可以是數據值的大小範圍,可以是字符串的長度範圍。例如,所述name參數的參數值的數據範圍為5至20個字符長度。
[0157]所述規則生成單元305,用於將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,生成與所述目標URL對應的防護規則。
[0158]其中,記錄單元301記錄所述目標URL的參數有多種,例如name參數、age參數、tel參數。將所述每種參數及其對應的屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,作為所述目標URL的防護規則中的各條紀錄。
[0159]例如,name的屬性為所述目標URL的必備參數,所述name的合法參數類型為字符串,所述name的數據範圍為5至20個字符長度;age的屬性為所述目標URL的非必備參數,所述age的合法參數類型為數值,所述age的數據範圍為7至58 ;tel的屬性為所述目標URL的非必備參數,所述tel的合法參數類型為字符串,所述tel的數據範圍為7至11。
[0160]其中,所述防護規則的保存形式可以為數據表的形式,也可以是文本文件的形式,當然,所述防護規則的保存形式包括但不限定於上述兩種形式。所述防護規則是與所述伺服器對應的,即可將所述防護規則的標識與將所述伺服器的標識建立對應關係。
[0161]需要說明的是,所述單元302、303及304的連接方式不限於上述方式,可以是三者同時與單元301相連。若是上述連接方式,則三者依次被觸發執行;若所述三者同時與單元301相連,則可以是任意兩者被同時觸發執行,也可以是三者被同時觸發執行。
[0162]在本實施例中,當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包的目標URL欄位中的參數的參數名稱、該參數的參數類型及該參數的參數值進行記錄,依據各個參數的參數名稱,分別統計每種參數對應的個數,並依據每種參數對應的個數,確定所述每種參數的屬性為所述目標URL的必備參數或所述目標URL的非必備參數;統計所述每種參數的每種參數類型對應的個數,並依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;統計所述每種參數的參數值的數據範圍;則可將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,進而生成與所述所述目標URL對應的防護規則。
[0163]上述實施例可以應用於伺服器,也可以應用於用戶及伺服器外的第三方設備,例如,將上述實施例配置到apache配置文件中,啟動apache,則可將上述實施例加載到apache中。另外,上述實施例中需要利用加鎖及內存共享技術,以解決在多進程和多線程訪問同一計算機資源時的加鎖互斥問題。
[0164]在上述裝置實施例的基礎上,還包括:統計單元;所述統計單元,用於統計接收到的多個請求數據包中所述目標URL的總個數;
[0165]所述第一規則項生成單元302可以通過以下方式實現:第一統計子單元、第一確定子單元;
[0166]所述第一統計子單元,用於依據各個參數的參數名稱,統計每種參數對應的個數;
[0167]所述第一確定子單元,用於依據所述每種參數對應的個數,確定所述每種參數的屬性;
[0168]其中,所述第一確定子單元包括:第一判斷子單元、第一結果子單元及第二結果子單元。其中:
[0169]所述第一判斷子單元,用於依據所述目標URL的總個數及所述每種參數對應的個數,獲得所述每種參數對應的缺失比值,並判斷所述每種參數的缺失比值是否未超過第一預設閾值;若是,觸發第一結果子單元;否則,觸發第二結果子單元;
[0170]所述第一結果子單元,用於將該種參數確定為必備參數;
[0171]所述第二結果子單元,用於將該種參數確定為非必備參數。
[0172]本實施例執行上述第二方法實施例中的相應功能,具體說明請參閱該方法實施例,在此不做贅述。
[0173]上述裝置實施例中的第二規則項生成單元303可以通過以下方式實現:第二統計子單元及第二確定子單元;其中:
[0174]所述第二統計子單元,用於統計所述每種參數的每種參數類型對應的個數;
[0175]所述第二確定子單元,用於依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型;
[0176]其中,所述第二確定子單元包括:第二判斷子單元及第三結果子單元。其中:
[0177]所述第二判斷子單元,用於判斷所述每種參數的每種參數類型的個數是否超過第二預設閾值;若是,觸發第三結果子單元;
[0178]所述第三結果子單元,用於將該種參數類型確定為該種參數的合法參數類型。
[0179]本實施例執行上述第三方法實施例中的相應功能,具體說明請參閱該方法實施例,在此不做贅述。
[0180]上述裝置實施例中的第三規則項生成單元304可以通過以下方式實現:第三判斷子單元、第四結果子單元及第五結果子單元。其中:
[0181]所述第三判斷子單元,用於判斷所述每種參數的參數值的屬性,其中,所述屬性為字符或數值;
[0182]所述第四結果子單元,用於若所述屬性為字符,統計所述字符屬性的參數值的字符長度範圍;
[0183]所述第五結果子單元,用於若所述屬性為數值,統計所述數值屬性的參數值的數值範圍。
[0184]本實施例執行上述第四方法實施例中的相應功能,具體說明請參閱該方法實施例,在此不做贅述。
[0185]請參閱圖4,其示出了本申請提供的一種規則生成裝置又一實施例的部分結構示意圖,本實施例可以包括:
[0186]接收單元401,用於接收用戶向所述伺服器發送的後續請求數據包。
[0187]其中,所述接收單元401與所述規則生成單元305相連,接收用戶向所述伺服器發送的後續請求數據包,並將該後續請求數據包與所述規則生成單元305生成的規則進行比對,實現對所述後續請求數據包的監測。
[0188]第一判斷單元402,用於判斷所述後續請求數據包的所述目標URL欄位中是否包含有屬性為必備參數的第一參數;若是,觸發第二判斷單元403 ;若否,觸發第一結果單元408。
[0189]第二判斷單元403,用於判斷所述第一參數的參數類型是否為對應的合法參數類型;若是,觸發第三判斷單元404 ;若否,觸發第一結果單元408 ;
[0190]第三判斷單元404,用於判斷所述第一參數的參數值是否符合對應的數據範圍,若是,觸發第四判斷單元405 ;若否,觸發第一結果單元408 ;
[0191]第四判斷單元405,用於判斷所述後續請求數據包的所述目標URL欄位中是否包含有所述屬性為非必備參數的第二參數;若是,觸發第五判斷單元406 ;
[0192]第五判斷單元406,用於判斷所述第二參數的參數類型是否為對應的合法參數類型;若是,觸發第六判斷單元407,若否,觸發第一結果單元408 ;
[0193]第六判斷單元407,用於判斷所述第二參數的參數值是否符合對應的數據範圍;若是,觸發第二結果單元409 ;若否,觸發第一結果單元408 ;
[0194]第一結果單元408,用於刪除所述後續請求數據包;
[0195]第二結果單元409,用於將所述後續請求數據包向所述伺服器進行發送。
[0196]本實施例執行上述第五方法實施例中的相應功能,具體說明請參閱該方法實施例,在此不做贅述。
[0197]需要說明的是,本說明書中的各個實施例均採用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
[0198]以上對本發明所提供的一種防護規則的生成方法及裝置進行了詳細介紹,對所公開的實施例的上述說明,使本領域專業技術人員能夠實現或使用本發明。對這些實施例的多種修改對本領域的專業技術人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發明的精神或範圍的情況下,在其它實施例中實現。因此,本發明將不會被限制於本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的範圍。
【權利要求】
1.一種防護規則生成方法,其特徵在於,所述方法包括: 當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、所述參數的參數類型及所述參數的參數值進行記錄,直至所述記錄過程滿足預設記錄結束條件; 依據各個參數的參數名稱,統計每種參數對應的個數;依據所述每種參數對應的個數,確定所述每種參數的屬性;其中,所述屬性為所述目標URL的必備參數或所述目標URL的非必備參數; 統計所述每種參數的每種參數類型對應的個數;依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型; 統計所述每種參數的參數值的數據範圍; 將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,生成與所述目標URL對應的防護規則。
2.根據權利要求1所述的方法,其特徵在於,還包括:統計接收到的多個請求數據包中所述目標URL的總個數;其中,所述依據所述每種參數對應的個數,確定所述每種參數的屬性,包括: 依據所述目標URL的總個數及所述每種參數對應的個數,獲得所述每種參數對應的缺失比值,並判斷所述每種參數的缺失比值是否未超過第一預設閾值;若是,將該種參數確定為所述目標URL的必備參數;否則,將該種參數確定為所述目標URL的非必備參數。
3.根據權利要求1所述的方法,其特徵在於,所述依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型,包括: 判斷所述每種參數的每種參數類`型的個數是否超過第二預設閾值;若是,將該種參數類型確定為該種參數的合法參數類型。
4.根據權利要求1所述的方法,其特徵在於,所述統計所述每種參數的參數值的數據範圍,包括: 判斷所述每種參數的參數值的屬性,其中,所述屬性為字符或數值; 若所述屬性為字符,統計所述字符屬性的參數值的字符長度範圍; 若所述屬性為數值,統計所述數值屬性的參數值的數值範圍。
5.根據權利要求1所述的方法,其特徵在於,還包括: 接收用戶向所述伺服器發送的後續請求數據包; 判斷所述後續請求數據包的所述目標URL欄位中是否包含有屬性為必備參數的第一參數; 若所述後續請求數據包的所述目標URL欄位中包含有屬性為必備參數的第一參數,判斷所述第一參數的參數類型是否為對應的合法參數類型;若所述第一參數的參數類型為對應的合法參數類型,判斷所述第一參數的參數值是否符合對應的數據範圍,若所述第一參數的參數值符合對應的數據範圍,判斷所述後續請求數據包的所述目標URL欄位中是否包含有所述屬性為非必備參數的第二參數; 若所述後續請求數據包的所述目標URL欄位中未包含有屬性為必備參數的第一參數、所述第一參數的參數類型不為對應的合法參數類型、或所述第一參數的參數值不符合對應的數據範圍,刪除所述後續請求數據包;若所述後續請求數據包的所述目標URL欄位中包含有所述屬性為非必備參數的第二參數,判斷所述第二參數的參數類型是否為對應的合法參數類型; 若所述第二參數的參數類型為對應的合法參數類型,判斷所述第二參數的參數值是否符合對應的數據範圍;若是,將所述後續請求數據包向所述伺服器進行發送;否則,刪除所述後續請求數據包; 若所述第二參數的參數類型不為對應的合法參數類型,刪除所述後續請求數據包。
6.一種防護規則生成裝置,其特徵在於,所述裝置包括: 記錄單元,用於當接收到規則生成指令時,對用戶向伺服器發送的多個請求數據包中目標URL欄位中的參數的參數名稱、所述參數的參數類型及所述參數的參數值進行記錄,直至所述記錄過程滿足預設記錄結束條件; 第一規則項生成單元,用於依據各個參數的參數名稱,統計每種參數對應的個數;依據所述每種參數對應的個數,確定所述每種參數的屬性;其中,所述屬性為所述目標URL的必備參數或所述目標URL的非必備參數; 第二規則項生成單元,用於統計所述每種參數的每種參數類型對應的個數;依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型; 第三規則項生成單元,用於統計所述每種參數的參數值的數據範圍; 規則生成單元,用於將所述每種參數及其屬性、所述每種參數的合法參數類型及所述每種參數的參數值的數據範圍對應組合,生成與所述目標URL對應的防護規則。
7.根據權利要求6所述的裝置,其特徵在於,還包括: 統計單元,用於統計接收到的多個請求數據包中所述目標URL的總個數; 所述第一規則項生成單元包括: 第一統計子單元,用於依據各個參數的參數名稱,統計每種參數對應的個數; 第一確定子單元,用於依據所述每種參數對應的個數,確定所述每種參數的屬性; 其中,所述第一確定子單元包括: 第一判斷子單元,用於依據所述目標URL的總個數及所述每種參數對應的個數,獲得所述每種參數對應的缺失比值,並判斷所述每種參數的缺失比值是否未超過第一預設閾值;若是,觸發第一結果子單元;否則,觸發第二結果子單元; 第一結果子單元,用於將該種參數確定為所述目標URL的必備參數; 第二結果子單元,用於將該種參數確定為所述目標URL的非必備參數。
8.根據權利要求6所述的裝置,其特徵在於,所述第二規則項生成單元包括: 第二統計子單元,用於統計所述每種參數的每種參數類型對應的個數; 第二確定子單元,用於依據所述每種參數的每種參數類型對應的個數,確定所述每種參數的合法參數類型; 其中,所述第二確定子單元包括: 第二判斷子單元,用於判斷所述每種參數的每種參數類型的個數是否超過第二預設閾值;若是,觸發第三結果子單元; 第三結果子單元,用於將該種參數類型確定為該種參數的合法參數類型。
9.根據權利要求6所述的裝置,其特徵在於,所述第三規則項生成單元包括: 第三判斷子單元,用於判斷所述每種參數的參數值的屬性,其中,所述屬性為字符或數值; 第四結果子單元,用於若所述屬性為字符,統計所述字符屬性的參數值的字符長度範圍; 第五結果子單元,用於若所述屬性為數值,統計所述數值屬性的參數值的數值範圍。
10.根據權利要求6所述的裝置,其特徵在於,還包括: 接收單元,用於接收用戶向所述伺服器發送的後續請求數據包; 第一判斷單元,用於判斷所述後續請求數據包的所述目標URL欄位中是否包含有屬性為必備參數的第一參數;若是,觸發第二判斷單元;若否,觸發第一結果單元。 第二判斷單元,用於判斷所述第一參數的參數類型是否為對應的合法參數類型;若是,觸發第三判斷單元;若否,觸發第一結果單元; 第三判斷單元,用於判斷所述第一參數的參數值是否符合對應的數據範圍,若是,觸發第四判斷單元;若否,觸發第一結果單元; 第四判斷單元,用於判斷所述後續請求數據包的所述目標URL欄位中是否包含有所述屬性為非必備參數的第二參數;若是,觸發第五判斷單元; 第一結果單元,用於刪除所述後續請求數據包; 第五判斷單元,用於判斷所述第二參數的參數類型是否為對應的合法參數類型;若是,觸發第六判斷單元,若否,觸發第一結果單元; 第六判斷單元,用於判斷`所述第二參數的參數值是否符合對應的數據範圍;若是,觸發第二結果單元;若否,觸發第一結果單元; 第二結果單元,用於將所述後續請求數據包向所述伺服器進行發送。
【文檔編號】G06F21/57GK103729594SQ201310753750
【公開日】2014年4月16日 申請日期:2013年12月31日 優先權日:2013年12月31日
【發明者】王發鑫, 孫應娥, 張青, 高隆林 申請人:山東中創軟體商用中間件股份有限公司