內容過濾方法和裝置的製作方法
2023-09-11 01:13:40 4
專利名稱:內容過濾方法和裝置的製作方法
技術領域:
本發明實施例涉及數據處理技術,尤其涉及一種內容過濾方法和裝置。
背景技術:
網際網路作為全球最大的信息中心,正以驚人的速度發展壯大,但是其中的信息良莠不齊,存在為數不少的不良網站、不良資源。另外還存在一些包含惡意軟體的可疑網站,會威脅到用戶的個人隱私甚至破壞用戶的電腦。為避免不良信息的危害,現有技術採用了基於應用層協議的內容過濾技術對網頁進行過濾。例如,對於企業網網關來說,可以通過配置過濾策略來過濾某些類型內容的網頁,從而達到限制企業網內部用戶進行禁止的行為,例如禁止訪問不良網站或觀看在線電 影等。現有技術典型是通過超文本傳輸協議(Hyper Text Transfer Protocol,簡稱HTTP)請求消息中的目標統一資源定位符(Uniform Universal Resource Locator,簡稱URL)地址來對目標網站進行分類。如果發現網頁屬於應該過濾的種類,例如色情、暴力等,則把HTTP請求重定向到另外一個提示頁面,或者直接把網絡連接斷開。現有內容過濾技術一般是由用戶預先設定規則條件和過濾條件,採用預編譯的過濾器對請求打開網頁的URL地址與規則條件相匹配,對與規則條件匹配一致的URL地址,再按照過濾條件進行阻斷或放行等處理。規則條件例如可以為「if URL含有sina」、「if URL等於畫· abc. com」等單個的字符串匹配條件,各條規則條件可以基於確定有限狀態自動機(Deterministic Finite-State Automata,簡稱 DFA)算法形成 DFA 圖,各網頁地址基於 DFA圖進行精確匹配以判斷是否與規則條件一致。過濾條件例如可以為「當滿足「if URL含有sina"時就執行將網頁放行的策略」,或「當滿足「if URL等於畫· abc. com」時就將該網頁阻斷或重定向的策略」。所以需要將與規則條件匹配一致的網頁地址進一步在過濾條件中匹配,以便確定該執行哪種處理策略。但是,現有技術的這種內容過濾技術存在較大缺陷。對URL地址進行內容過濾採用的規則條件匹配方法是通過採用DFA圖進行的,當規則條件的數量太多或者要求支持複雜規則條件配置,例如包括通配符的正則表達式型,諸如*/abc. */news」、「. *\. www\.domain. *\. com」等,則會遇到耗用大量內存的問題。這個是DFA算法的主要缺點,現有技術可以採用壓縮的DFA,如D2FA (Delayed DFA)算法代替標準DFA進行匹配,但是會造成匹配性能低下,因為D2FA算法的時間效率比標準DFA低好幾倍。所以,如何兼顧內容過濾技術中內存佔用量和匹配性能,成為現有技術中需要解決的技術問題。
發明內容
本發明實施例提供一種內容過濾方法和裝置,以減小內容過濾的內存佔用且獲得良好的匹配效果。
本發明實施例提供了一種內容過濾方法,包括從輸入的一條或多條規則條件中分別提取關鍵字;根據提取的關鍵字對所述一條或多條規則條件劃分成一個或多個分組,使得同一分組中的規則條件具有相同的關鍵字,並為所述提取的關鍵字預編譯分組匹配數據集合;分別為所述提取的關鍵字中的各關鍵字對應分組的規則條件預編譯精確匹配數據集合;獲取待過濾內容;利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配,得到匹配到的關鍵字;利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對所述待過濾內 容進行規則條件的精確匹配;根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略。本發明實施例還提供了一種內容過濾裝置,包括內容獲取模塊、內容過濾模塊和策略實施模塊,其中,所述內容獲取模塊,用於獲取待過濾內容;所述內容過濾模塊包括關鍵字提取單元,用於從輸入的一條或多條規則條件中分別提取關鍵字;分組編譯單元,用於根據提取的關鍵字對所述一條或多條規則條件劃分成一個或多個分組,使得同一分組中的規則條件具有相同的關鍵字,並為所述提取的關鍵字預編譯分組匹配數據集合;規則條件編譯單元,用於分別為所述提取的關鍵字中的各關鍵字對應分組的規則條件預編譯精確匹配數據集合;分組匹配單元,用於利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配,得到匹配到的關鍵字;規則條件匹配單元,用於利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對所述待過濾內容進行規則條件的精確匹配;所述策略實施模塊,用於根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略。本發明實施例所提供的內容過濾方法和裝置,由於基於關鍵字對規則條件進行了分組預過濾,所以每組規則條件的數量較少,構造的與每組規則條件對應的精確匹配數據集合所佔用內存之和,比將所有規則條件預編譯形成的數據集合佔用內存要少。而分組預過濾後再基於規則條件的精確匹配,能夠保證待過濾內容與規則條件的精確比較,具有較高的匹配準確性。所以本發明實施例的技術方案在佔用較少內存的基礎上優化了匹配性能,得到了較為準確的匹配結果。
圖I為本發明實施例一提供的內容過濾方法的流程圖;圖2為本發明實施例三提供的內容過濾方法的流程圖;圖3為本發明實施例四提供的內容過濾方法的流程圖4為本發明實施例五提供的內容過濾方法的流程圖;圖5為本發明實施例五所適用實例的流程圖;圖6為本發明實施例六提供的內容過濾裝置的結構示意圖;圖7為本發明實施例七提供的內容過濾裝置的結構示意圖;圖8為本發明實施例八提供的內容過濾裝置的結構示意圖;圖9為本發明實施例九所適用的網絡架構示意圖;圖10為本發明實施例九提供的內容過濾方法中提取關鍵字的過程示意圖;
圖11為本發明實施例九提供的內容過濾方法中執行過濾流程的示意圖;圖12為本發明實施例提供的內容過濾方法中分組與算法對應關係示意圖;圖13為本發明實施例提供的計算機系統的結構示意圖;圖14為本發明另一實施例提供的計算機系統的結構示意圖。
具體實施例方式為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。實施例一圖I為本發明實施例一提供的內容過濾方法的流程圖,本實施例的內容過濾方法可適用於各種需要對文本內容進行過濾的場景中,具體可以由軟體和/或硬體形式來實現,典型地如基於文本應用層協議執行的網頁內容過濾,則可以由集成在網關中的軟體來實現。該內容過濾方法主要包括了對規則條件的預編譯流程和對待過濾內容的過濾流程,具體包括如下步驟步驟110、從輸入的一條或多條規則條件中分別提取關鍵字;步驟120、根據提取的關鍵字對所述一條或多條規則條件劃分成一個或多個分組,使得同一分組中的規則條件具有相同的關鍵字,並為所述提取的關鍵字預編譯分組匹配數據集合;步驟130、分別為所述提取的關鍵字中的各關鍵字對應分組的規則條件預編譯精確匹配數據集合;上述步驟110-130為預編譯流程,是對用戶輸入的各規則條件進行編譯處理,以便在執行過濾流程時,能對待過濾內容進行迅速匹配。步驟140、獲取待過濾內容;步驟150、利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配,得到匹配到的關鍵字;步驟160、利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對所述待過濾內容進行規則條件的精確匹配;步驟170、根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略。上述步驟140-170為內容過濾流程,是基於預編譯過程構造的匹配數據集合對待過濾內容進行匹配的操作。內容過濾技術中適用於規則條件和過濾規則的匹配數據集合可稱為內容過濾規則庫,規則條件和過濾規則一般是由管理員等用戶動態配置的,而不是由設備提供商定期手動/遠程更新的。所以,如何根據用戶輸入的規則條件和過濾規則自動地構造出高效的內容過濾規則庫是實現內容過濾方法的關鍵問題。通常在實施內容過濾技術時,用戶會輸入多條規則條件,可採用正則表達式來表示,規則條件一般是文本應用協議中某個欄位所匹配的內容。若在過濾流程中需要匹配多個欄位,例如,不同的欄位可以包括URL地址、內容類型(Content-Type)頭域、用戶代理(User-Agent)頭域等,則可以針對不同欄位,為每個欄位對應的規則條件分別執行預編譯流程。本實施例所執行的預編譯流程以一個欄位為例進行說明,若為多個欄位內容的規則條件則重複執行本實施例的技術方案即可。本實施例的預編譯流程中,所提取的關鍵字是基於預設策略從規則條件中提取的,關鍵字是能夠儘量以少量字符代表該規則條件核心內容的欄位。提取滿足此要求的關鍵字的預設策略可以有多種實現方式,將通過後續實施例進行介紹。由於所提取的關鍵字用於反映規則條件的核心內容,所以基於關鍵字將規則條件分組,即通過將具有相同關鍵字的規則條件分為一組來將內容類似的規則條件分在相同組中,所謂相同關鍵字,並 不嚴格限定為文字相同,也可以基於預設策略將具有關聯的關鍵字視為具有相同的關鍵字。隨後,一方面為所有關鍵字預編譯一分組匹配數據集合,另一方面為各組規則條件分別預編譯一精確匹配數據集合。所謂數據集合即根據某種內容匹配算法預編譯數據,能夠在進行匹配時快速完成字符串的比對,例如純字符串匹配算法、非確定有限狀態自動機(Nondeterministic Finite-state Automata,簡稱 NFA)匹配算法、DFA 匹配算法等均可以作為匹配數據集合。分組匹配數據集合和精確匹配數據集合優選均採用能夠精確匹配字符串的匹配算法。例如可考慮性能和內存佔用的平衡,根據內存規格,一般來說性能越高的算法,消耗更多內存,反之亦然。大部分網絡數據是需要經過分組匹配算法處理,而少量數據匹配到分組,進一步進行精確匹配。所以對於關鍵字的分組匹配算法,可向提高性能方面傾斜,保證迅速匹配獲得關鍵字。對於規則條件的精確匹配算法,可向內存佔用少的方向傾斜,以避免規則條件的大量增加佔用過多內存。基於預編譯流程所構造的分組匹配數據集合和精確匹配數據集合,當執行過濾流程時,首先將待過濾內容利用分組匹配數據集合進行關鍵字的匹配,識別待過濾內容中是否包含關鍵字,以及包含哪個關鍵字。當匹配到包含某個關鍵字時,則將該待過濾內容利用所匹配到關鍵字對應組的精確匹配數據集合進行與規則條件的精確匹配。匹配結果是能或不能匹配到規則條件,此匹配結果可以作為後續進行過濾規則識別或執行相應處理策略的依據。當匹配到該待過濾內容不包含關鍵字時,則顯然也與任何規則條件不匹配,可不進行精確匹配,此匹配結果也可以作為執行後續過濾策略的依據。本實施例的技術方案,由於基於關鍵字對規則條件進行了分組預過濾,所以每組規則條件的數量較少,構造的各個精確匹配數據集合所佔用內存之和比所有規則條件編譯的數據集合佔用內存要少。而分組預過濾後再基於規則條件的精確匹配,能夠保證待過濾內容與規則條件的精確比較,具有較高的匹配準確性。所以本實施例的技術方案在佔用較少內存的基礎上優化了匹配性能,得到了較為準確的匹配結果。在上述實施例的基礎上,步驟110提取關鍵字的操作,還會存在無法按照預設策略提取出關鍵字的可能,遇到此類情況,可以將無法提取關鍵字的規則條件丟棄,但優選是執行下述操作當識別出輸入的規則條件無法提取關鍵字時,將該規則條件放入待提示分組,並為所述待提示分組的規則條件預編譯精確匹配數據集合,並向用戶發出規則條件不良提
/Jn ο相應地,過濾流程中,在利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配之後,還包括當待過濾內容未匹配到關鍵字時,利用所述待提示分組的規則條 件對應的精確匹配數據集合,對未匹配到關鍵字的所述待過濾內容進行規則條件的精確匹配。上述出現無法提取關鍵字的情況,說明包含此類規則條件的待過濾內容無法根據關鍵字首先進行分組再進行精確匹配,只能進行完全的精確匹配。將不包含關鍵字的待過濾內容全部進行精確匹配能夠進一步保證所有過濾的準確性,但這將是不利於減少內存的,同時,此類規則條件的精確匹配性能通常也低於分組匹配,因而對時間性能消耗較大。所以出現此類情況可以向用戶發出規則條件不良提示,告知此類規則條件將加重系統的時間和空間性能的負擔,應儘量避免設置此類規則條件。本實施例中,獲取待過濾內容可以是對接收到的數據包採用深度報文識別(De印Packet Inspection,簡稱DPI)技術進行協議識別,一般來說,進行內容過濾的文本類協議類型包括HTTP、會話初始化協議(Session Initiation Protocol,簡稱SIP)、實時流傳輸協議(Real Time Streaming Protocol,簡稱RTSP)等協議類型;基於識別到的協議,對數據包進行欄位解析,以獲取至少一個預設欄位,各預設欄位分別作為待過濾內容,以便分別執行後續的分組匹配、精確匹配和過濾匹配操作。其中,所述過濾規則由一條或多條規則條件組合而成,且所述過濾規則由對應於一個或多個預設欄位的一條或多條規則條件組合而成。例如,預設欄位可以包括HTTP協議數據包中的HTTP消息的請求方法、請求URL、內容類型(Content-Type)頭域、用戶代理(User-Agent)頭域等。實施例二本發明實施例二提供的內容過濾方法,可以以上述實施例為基礎,進一步改進了過濾規則的預編譯和過濾過程。在上述實施例中,過濾規則的預編譯和過濾可以基於多種技術執行,例如,匹配到規則條件後記錄對應的標識,然後基於標識在各條過濾規則中分別匹配適用於何種過濾規則,而後執行相應的過濾策略。或者採用樹形結構構造各條過濾規貝U,將匹配到的規則條件在樹形結構中匹配。本實施例提供了另一種優選的過濾規則匹配方案,在預編譯流程的任意時刻,執行如下步驟為所述一條或多條規則條件分別分配唯一的條件標識,為過濾規則預編譯過濾匹配數據集合,其中,所述過濾規則由所述一條或多條規則條件組合而成,且利用所述一條或多條規則條件的條件標識作為字符來表達所述過濾規則,即具體是將字符形式表達的過濾規則預編譯成過濾匹配數據集合,例如DFA、D2FA狀態機等;則在過濾流程中,在根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略包括利用所述過濾匹配數據集合,將待過濾內容精確匹配到的規則條件的條件標識作為字符,對所述字符進行過濾規則的匹配,所述待過濾內容精確匹配到的規則條件由所述對待過濾內容進行規則條件的精確匹配得到。過濾規則通常由一條或多個規則條件組成,當這些規則條件都被待過濾內容滿足時,才算過濾規則匹配成功,會對應執行相應的過濾策略,例如網頁重定向到一個提示頁面,告知用戶其請求已經被阻止;直接丟棄網頁並重置客戶端連接;放行網頁等過濾策略。本實施例將規則條件的條件標識作為字符,則過濾規則的形式為條件標識構成的字符串,即將條件規則的條件標識轉換為正則表達式,能夠將多條過濾規則進行統一的預編譯,實現多模匹配,而後通過一次的匹配即可得出待過濾內容符合哪條過濾規則,無需多次查詢,優化了過濾性能。
下面提供實例來說明。假設過濾規則可以為「 If domain= 「www\. porn. *\.com,,and (User—Agent= 「 氺Chrome,,or User—Agent= 「 氺Firefox,,) and Content-Type=Anythen Redirect. 」,其含義是,如果使用「Chrome」或者「Firefox」瀏覽器訪問「www\.porn. *\. com」成人網站,那麼重定向此消息到一個提示已被過濾網頁。「Content-Type」可以是任意內容,此處可以省略,僅為解釋方案思想而保留。假設各規則條件的條件標識如下「www\. porn. *\· com」 =\x87「· *Chrome」 =\x91「· *Firefox」 =\xl3則可以將過濾規則直接轉換成正則表達式「~\x87(\x911 \xl3). 」如果有多條過濾規則,則同理都編譯成一起,組成過濾匹配數據集合,例如一個DFA或D2FA狀態機,進行匹配的時候,按照過濾規則預定義的順序執行第一個待過濾內容是「Domain」欄位,記錄待過濾內容匹配到的規則條件的條件標識;第二個待過濾內容是「User-Agent」欄位,記錄待過濾內容匹配到的規則條件的條件標識;第三個待過濾內容是「Content-Type」欄位,記錄待過濾內容匹配到的規則條件的條件標識,注意正則表達式最後一個字符是」,表示任意;而後利用過濾匹配數據集合,將匹配到的條件標識進行過濾規則的匹配,即可獲知該執行何種過濾策略。這樣,如果有多條過濾規則需要匹配,僅需要按照順序將各條件標識進行一次匹配即可,不必逐條匹配,性能顯著提高。同時,可以採用D2FA而不是DFA以節約內存。當條件標識的數量大於255,即單個字符無法作為條件標識時,可以使所有規則條件都採用雙字節條件標識,例如下文第三條條件標識是525,即十六進位0X020d時。「www\. porn. *\· com」 =\x87「 · ^Chrome 」 =\x91「· *Firefox」 =\x02\x0d
過濾規則的表達式則轉換為,「~\x00\x87\x00\x91\x02\x0d. · 」實施例三圖2為本發明實施例三提供的內容過濾方法的流程圖。在上述實施例中介紹了在初始階段對用戶輸入的規則條件和過濾規則進行的預編譯處理,實際應用中,用戶可以隨時新增、刪除和更改規則條件和過濾規則,更改操作相當於先刪除再新增的操作。本實施例主要優化新增規則條件的操作,則上述內容過濾方法進一步可執行如下操作步驟210、當獲取到新增的規則條件時,從新增的規則條件中提取關鍵字;步驟220、根據從新增的規則條件中提取的關鍵字為新增的規則條件查找或創建對應的分組,並重新編譯分組匹配數據集合;
本步驟具體可以首先在已有分組中查找是否存在對應的關鍵字,若查找到沒有對應的關鍵字,則為該關鍵字創建新的分組,並重新編譯分組匹配數據集合,沒查找到有對應的關鍵字,則無需重新編譯分組匹配數據集合。步驟230、根據所述新增的規則條件預編譯對應分組的規則條件的精確匹配數據
集合;該步驟的操作區分針對已有分組和新建分組的情況,進行重新編譯。對於採用不同算法實現的數據集合可有不用的編譯方法,如此分組採用DFA把所有組內規則條件編譯成一個狀態機,則必須重新編譯整個DFA狀態機;若此分組採用逐條單模匹配,則只需要編譯新增的規則條件,並添加到匹配鏈中去。步驟240、為新增的規則條件分配條件標識,並重新編譯過濾匹配數據集合。本實施例的技術方案可以使用戶靈活地增加新的規則條件,新增規則條件僅需更新分組匹配數據集合、過濾匹配數據集合和一組精確匹配數據集合,若新增規則條件未產生新的關鍵字,則無需更新分組匹配數據集合,相對於現有技術無需對所有預編譯數據集合進行調整。實施例四圖3為本發明實施例四提供的內容過濾方法的流程圖。本實施例以上述實施例為基礎,進一步優化刪除規則條件的操作過程。該內容過濾方法還包括如下步驟步驟310、根據輸入的規則條件刪除指令,確定待刪除的規則條件或待刪除規則條件對應的條件標識,從待刪除規則條件中提取關鍵字;步驟320、根據從待刪除規則條件中提取的關鍵字更新分組匹配數據集合;步驟330、如果需刪除所述待刪除規則條件,則對從待刪除規則條件中提取的關鍵字的對應分組的規則條件重新編譯精確匹配數據集合,以刪除所述待刪除規則條件;當然,若識別到該關鍵字的對應組中不存在規則條件了,則刪除該組的精確匹配數據集合,同時刪除該關鍵字,並重新編譯分組匹配數據集合;步驟340、如果需刪除所述待刪除規則條件對應的條件標識,則重新編譯所述過濾匹配數據集合,以刪除所述待刪除規則條件對應的條件標識。與實施例三類似,本實施例可靈活刪除規則條件,且無需對所有預編譯數據集合進行調整。過濾規則的新增、刪除和更改與規則條件類似,可根據新增的過濾規則或過濾規則刪除指令,重新編譯過濾匹配數據集合,以新增或刪除過濾規則。實施例五圖4為本發明實施例五提供的內容過濾方法的流程圖,在上述實施例所提供的內容過濾方法中均涉及關鍵字的提取,關鍵字提取的質量,直接關係到後續分組匹配和精確匹配的性能,以及內容過濾規則庫所需佔用的內存大小。從輸入的一條或多條規則條件中分別提取關鍵字的操作可以有多種實現方式,例如包括如下步驟步驟410、對輸入的規則條件,按照預設劃分策略進行欄位劃分;步驟420、基於預設篩選策略對劃分後的欄位進行篩選得到所述規則條件的關鍵字。其中,基於預設篩選策略對劃分後的欄位進行篩選,得到所述規則條件的關鍵字的操作優選是執行下述流程 從所述劃分的欄位中,將與黑名單中欄位一致的欄位刪除;按照記錄的欄位誤命中次數,將誤命中次數高於命中門限值的欄位刪除;針對每個規則條件,在該規則條件的各關鍵字中選擇該關鍵字分組的規則條件數量最少的欄位篩選作為該規則條件的關鍵字。但,本領域人員可以理解,上述各項也可以獨立執行,或以其他順序執行,還可以增加其他篩選策略,例如將與白名單中欄位一致的欄位篩選為關鍵字等。實際應用中,可以根據需要設定多項篩選策略,且其執行順序不限,可以對劃分後的欄位進行多輪的篩選,以獲取能表述規則條件核心內容的欄位。本領域技術人員可以理解,關鍵字的篩選策略並不限於上述幾項。確定優選的篩選策略的依據是關鍵字的誤命中次數越多或誤命中率越高,則實際匹配性能越低;分組中規則條件的數量越多,則佔用內存越多。所以提取關鍵字的策略要儘量兼顧匹配性能和內存佔用的平衡。除靜態設置之外,黑名單、白名單以及誤命中次數都可以通過動態統計進行更新,例如在利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對所述待過濾內容進行規則條件的精確匹配之後,還包括當匹配到關鍵字的待過濾內容利用所述精確匹配數據集合未匹配到對應的規則條件時,更新該關鍵字的誤命中次數記錄;將誤命中次數高於設定門限值的關鍵字加入黑名單。通過根據匹配情況來進行動態統計,能夠更新黑名單、白名單、誤命中次數的準確性,以優化關鍵字提取策略的準確性,從而優化內容過濾的匹配性能。優選是可以按照設定周期,以更新後的誤命中次數和黑名單等,在已有規則條件中重新執行提取關鍵字、分組、預編譯的操作,以優化預編譯的數據集合,獲得更優的匹配性能。下面以實例方式詳細介紹關鍵字的提取操作,圖5為本發明實施例五所適用實例的流程圖。首先在系統中維護一關鍵字動態統計表,如表I所示,其中的誤命中次數在內容過濾方法的運行過程中可進行實時刷新,例如按照設定周期、或按設定的觸發條件來實時刷新。表I
權利要求
1.一種內容過濾方法,其特徵在於,包括 從輸入的一條或多條規則條件中分別提取關鍵字; 根據提取的關鍵字對所述一條或多條規則條件劃分成一個或多個分組,使得同一分組中的規則條件具有相同的關鍵字,並為所述提取的關鍵字預編譯分組匹配數據集合; 分別為所述提取的關鍵字中的各關鍵字對應分組的規則條件預編譯精確匹配數據集合; 獲取待過濾內容; 利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配,得到匹配到的關鍵字; 利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對所述待過濾內容進行規則條件的精確匹配; 根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略。
2.根據權利要求I所述的內容過濾方法,其特徵在於,還包括 為所述一條或多條規則條件分別分配唯一的條件標識,為過濾規則預編譯過濾匹配數據集合,其中,所述過濾規則由所述一條或多條規則條件組合而成,且利用所述一條或多條規則條件的條件標識作為字符來表達所述過濾規則; 則根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略包括 利用所述過濾匹配數據集合,將待過濾內容精確匹配到的規則條件的條件標識作為字符對所述字符進行過濾規則的匹配,所述待過濾內容精確匹配到的規則條件由所述對待過濾內容進行規則條件的精確匹配得到; 根據所述過濾規則的匹配結果執行與所述匹配結果對應的過濾策略。
3.根據權利要求2所述的內容過濾方法,其特徵在於,還包括 當獲取到新增的規則條件時,從新增的規則條件中提取關鍵字; 根據從新增的規則條件中提取的關鍵字為新增的規則條件查找或創建對應的分組,並重新編譯分組匹配數據集合; 根據所述新增的規則條件預編譯對應分組的規則條件的精確匹配數據集合; 為所述新增的規則條件分配條件標識,並重新編譯過濾匹配數據集合。
4.根據權利要求2所述的內容過濾方法,其特徵在於,還包括 根據輸入的規則條件刪除指令,確定待刪除的規則條件或待刪除規則條件對應的條件標識,從待刪除規則條件中提取關鍵字; 根據從待刪除規則條件中提取的關鍵字更新分組匹配數據集合; 如果需刪除所述待刪除規則條件,則對從待刪除規則條件中提取的關鍵字的對應分組的規則條件重新編譯精確匹配數據集合,以刪除所述待刪除規則條件; 如果需刪除所述待刪除規則條件對應的條件標識,則重新編譯所述過濾匹配數據集合,以刪除所述待刪除規則條件對應的條件標識。
5.根據權利要求1-4任一所述的內容過濾方法,其特徵在於,所述從輸入的一條或多條規則條件中分別提取關鍵字包括 對輸入的規則條件,按照預設劃分策略進行欄位劃分; 基於預設篩選策略對劃分後的欄位進行篩選得到所述規則條件的關鍵字。
6.根據權利要求5所述的內容過濾方法,其特徵在於,所述基於預設篩選策略對劃分後的欄位進行篩選,得到所述規則條件的關鍵字包括 從所述劃分後的欄位中,將與黑名單中欄位一致的欄位刪除; 按照記錄的欄位誤命中次數,將誤命中次數高於命中門限值的欄位刪除; 針對每個規則條件,在該規則條件的各關鍵字中選擇該關鍵字分組的規則條件數量最少的欄位篩選作為該規則條件的關鍵字。
7.根據權利要求6所述的內容過濾方法,其特徵在於,在利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對匹配到關鍵字的待過濾內容進行規則條件的精確匹配之後,還包括 當匹配到關鍵字的待過濾內容利用所述精確匹配數據集合未匹配到對應的規則條件時,更新該關鍵字的誤命中次數記錄; 將誤命中率次數高於設定門限值的關鍵字加入黑名單。
8.根據權利要求1-4任一所述的內容過濾方法,其特徵在於,所述分別為所述提取的關鍵字中的各關鍵字對應分組的規則條件預編譯精確匹配數據集合包括 對於規則條件的數量小於預配置門限值的分組,為該組規則條件採用非確定有限狀態自動機、確定有限狀態自動機或者壓縮的確定有限狀態自動機正則表達式匹配算法預編譯精確匹配數據集合,或採用單模字符串匹配算法預編譯精確匹配數據集合; 對於規則條件的數量等於或大於預配置門限值的分組,為該組規則條件採用確定有限狀態自動機或者壓縮的確定有限狀態自動機正則表達式匹配算法預編譯精確匹配數據集合; 對於包括具有設定複雜定義參數的規則條件的分組,為該組規則條件採用非確定有限狀態自動機或者壓縮的確定有限狀態自動機正則表達式匹配算法預編譯精確匹配數據集入口 ο
9.根據權利要求2-4任一所述的內容過濾方法,其特徵在於,所述獲取待過濾內容包括 對接收到的數據包採用深度報文識別技術進行協議識別; 基於識別到的協議,對所述數據包進行欄位解析,以獲取至少一個預設欄位,將各預設欄位分別作為待過濾內容,以便分別執行後續的分組匹配、精確匹配和過濾匹配操作,其中,所述過濾規則由一條或多條規則條件組合而成,且所述過濾規則由對應於一個或多個預設欄位的一條或多條規則條件組合而成。
10.根據權利要求1-4任一所述的內容過濾方法,其特徵在於,還包括 當識別出輸入的規則條件無法提取關鍵字時,將該規則條件放入待提示分組,並為所述待提示分組的規則條件預編譯精確匹配數據集合,並向用戶發出規則條件不良提示。
11.根據權利要求10所述的內容過濾方法,其特徵在於,在利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配之後,還包括 當待過濾內容未匹配到關鍵字時,利用所述待提示分組的規則條件對應的精確匹配數據集合,對未匹配到關鍵字的所述待過濾內容進行規則條件的精確匹配。
12.根據權利要求1-4任一所述的內容過濾方法,其特徵在於,從輸入的一條或多條規則條件中分別提取關鍵字包括按照設定周期,從已輸入的一條或多條規則條件中提取關鍵字。
13.一種內容過濾裝置,其特徵在於,包括內容獲取模塊、內容過濾模塊和策略實施模塊,其中, 所述內容獲取模塊,用於獲取待過濾內容; 所述內容過濾模塊包括 關鍵字提取單元,用於從輸入的一條或多條規則條件中分別提取關鍵字; 分組編譯單元,用於根據提取的關鍵字對所述一條或多條規則條件劃分成一個或多個分組,使得同一分組中的規則條件具有相同的關鍵字,並為所述提取的關鍵字預編譯分組匹配數據集合; 規則條件編譯單元,用於分別為所述提取的關鍵字中的各關鍵字對應分組的規則條件預編譯精確匹配數據集合; 分組匹配單元,用於利用所述分組匹配數據集合,對所述待過濾內容進行關鍵字的匹配,得到匹配到的關鍵字; 規則條件匹配單元,用於利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對所述待過濾內容進行規則條件的精確匹配; 所述策略實施模塊,用於根據所述精確匹配的匹配結果執行與所述匹配結果對應的過濾策略。
14.根據權利要求13所述的內容過濾裝置,其特徵在於 所述內容過濾模塊還包括過濾規則編譯單元,用於為所述一條或多條規則條件分別分配唯一的條件標識,為過濾規則預編譯過濾匹配數據集合,其中,所述過濾規則由一條或多條規則條件組合而成,且利用所述一條或多條規則條件的條件標識作為字符來表達所述過濾規則; 所述策略實施模塊包括 過濾規則匹配單元,用於利用所述過濾匹配數據集合,將待過濾內容精確匹配到的規則條件的條件標識作為字符,對所述字符進行過濾規則的匹配,所述待過濾內容精確匹配到的規則條件由所述對待過濾內容進行規則條件的精確匹配得到; 策略實施單元,用於根據所述過濾規則的匹配結果執行與所述匹配結果對應的過濾策略。
15.根據權利要求13或14所述的內容過濾裝置,其特徵在於,所述規則條件編譯單元還用於當識別出輸入的規則條件無法提取關鍵字時,將該規則條件放入待提示分組,並為所述待提示分組的規則條件預編譯精確匹配數據集合,並向用戶發出規則條件不良提示。
16.根據權利要求15所述的內容過濾裝置,其特徵在於,所述規則條件匹配單元還用於當待過濾內容未匹配到關鍵字時,利用所述待提示分組的規則條件對應的精確匹配數據集合,對未匹配到關鍵字的所述待過濾內容進行規則條件的精確匹配。
17.根據權利要求13或14所述的內容過濾裝置,其特徵在於,所述關鍵字提取單元包括 欄位劃分子單元,用於對輸入的規則條件,按照預設劃分策略進行欄位劃分; 欄位篩選子單元,用於基於預設篩選策略對劃分後的欄位進行篩選,得到所述規則條件的關鍵字。
18.根據權利要求17所述的內容過濾裝置,其特徵在於,其中,所述欄位篩選子單元具體用於 從所述劃分後的欄位中,將與黑名單中欄位一致的欄位刪除; 按照記錄的欄位誤命中次數,將誤命中率高於命中門限值的欄位刪除; 針對每個規則條件,在該規則條件的各關鍵字中選擇該關鍵字分組的規則條件數量最少的欄位篩選作為該規則條件的關鍵字。
19.根據權利要求18所述的內容過濾裝置,其特徵在於,所述內容過濾模塊還包括統計更新單元,所述統計更新單元包括 誤命中次數記子單元,用於當匹配到關鍵字的待過濾內容利用所述精確匹配數據集合 未匹配到對應的規則條件時,更新該關鍵字的誤命中次數記錄; 黑名單更新子單元,用於將誤命中次數高於設定門限值的關鍵字加入黑名單。
20.根據權利要求13或14所述的內容過濾裝置,其特徵在於,所述規則條件編譯單元包括 第一編譯子單元,用於對於規則條件的數量小於預配置門限值的分組,為該組規則條件採用非確定有限狀態自動機確定有限狀態自動機或者壓縮的確定有限狀態自動機正則表達式匹配算法預編譯精確匹配數據集合,或採用單模字符串匹配算法預編譯精確匹配數據集合; 第二編譯子單元,用於對於規則條件的數量等於或大於預配置門限值的分組,為該組規則條件採用確定有限狀態自動機或者壓縮的確定有限狀態自動機正則表達式匹配算法預編譯精確匹配數據集合; 第三編譯子單元,用於對於包括具有設定複雜定義參數的規則條件的分組,為該組規則條件採用非確定有限狀態自動機或者壓縮的確定有限狀態自動機正則表達式匹配算法預編譯精確匹配數據集合。
21.根據權利要求13或14所述的內容過濾裝置,其特徵在於,所述內容獲取模塊包括 協議識別單元,用於對接收到的數據包採用深度報文識別技術進行協議識別; 協議解析單元,用於基於識別到的協議,對所述數據包進行欄位解析,以獲取至少一個預設欄位,將各預設欄位分別作為待過濾內容,以便分別執行後續的分組匹配、精確匹配和過濾匹配操作,其中,所述過濾規則由一條或多條規則條件組合而成,且所述過濾規則由對應於一個或多個預設欄位的一條或多條規則條件組合而成。
全文摘要
本發明實施例提供一種內容過濾方法和裝置。該方法包括從輸入的規則條件中分別提取關鍵字;根據提取的關鍵字對規則條件劃分成一個或多個分組,並為提取的關鍵字預編譯分組匹配數據集合;分別為提取的關鍵字對應分組的規則條件預編譯精確匹配數據集合;獲取待過濾內容;利用分組匹配數據集合,對待過濾內容進行關鍵字的匹配;利用匹配到的關鍵字對應分組的規則條件的精確匹配數據集合,對待過濾內容進行規則條件的精確匹配;根據精確匹配的匹配結果執行對應的過濾策略。本發明由於對規則條件進行了分組預過濾,所以每組規則條件的數量較少,佔用內存減少。而分組預過濾後再基於規則條件的精確匹配具有較高的匹配準確性。
文檔編號H04L29/06GK102857493SQ201210223008
公開日2013年1月2日 申請日期2012年6月30日 優先權日2012年6月30日
發明者尤裡·哈桑, 艾維·菲爾, 莫默 申請人:華為技術有限公司