關(guān)鍵字模糊匹配方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)安全技術(shù)領(lǐng)域,尤其涉及一種關(guān)鍵字模糊匹配方法及裝置。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)的迅速普及,大量的信息出現(xiàn)在互聯(lián)網(wǎng)上,互聯(lián)網(wǎng)在造福于人類的同時(shí),也給用戶帶來了很多問題?;ヂ?lián)網(wǎng)使用的方便性以及靈活性已經(jīng)成為不法分子或者黑客等傳播非法信息的重要渠道,越來越多的網(wǎng)絡(luò)應(yīng)用程序需要高效地對違禁用語、禁限售商品等關(guān)鍵字進(jìn)行匹配和處理。
[0003]其中,關(guān)鍵字的匹配不能僅僅通過分析上下文語義,還需要向智能化的方向發(fā)展,需要通過一種更豐富的表達(dá)式,準(zhǔn)確匹配管理者想要過濾的內(nèi)容。并且,該表達(dá)式中,應(yīng)該會存在一些假設(shè)條件和驗(yàn)證判斷過程,形成一個(gè)判斷邏輯,而構(gòu)成表達(dá)式的一部分就是關(guān)鍵字,另一部分就是一些體現(xiàn)邏輯的標(biāo)示符,從而達(dá)到關(guān)鍵字模糊匹配的目的。
[0004]現(xiàn)有技術(shù)中,通常采用正則表達(dá)式進(jìn)行關(guān)鍵字模糊匹配。其具體匹配過程如下:
[0005](I)編譯。當(dāng)創(chuàng)建了一個(gè)正則表達(dá)式對象之后,瀏覽器檢查正則表達(dá)式模板有沒有錯(cuò)誤,然后將該轉(zhuǎn)換成一個(gè)本機(jī)代碼例程,用于執(zhí)行匹配工作。如果你將正則表達(dá)式賦給一個(gè)變量,你可以避免重復(fù)執(zhí)行此步驟。
[0006](2)設(shè)置起始位置。當(dāng)一個(gè)正則表達(dá)式投入使用時(shí),首先要確定目標(biāo)字符串中開始搜索的位置。該位置是字符串的起始位置,或者由正則表達(dá)式指定的位置。
[0007](3)匹配每個(gè)正則表達(dá)式的字元。正則表達(dá)式一旦找好起始位置,將一個(gè)一個(gè)地掃描目標(biāo)文本和正則表達(dá)式模板。當(dāng)一個(gè)特定字元匹配失敗時(shí),正則表達(dá)式將試圖回溯到掃描之前的位置上,然后進(jìn)入正則表達(dá)式其他可能的路徑上。
[0008](4)匹配成功或者失敗。如果在字符串的當(dāng)前位置上發(fā)現(xiàn)一個(gè)完全匹配,那么正則表達(dá)式宣布成功。如果正則表達(dá)式的所有可能路徑都嘗試過了,但是沒有成功地匹配,那么正則表達(dá)式引擎回到(2),從字符串的下一個(gè)字符重新嘗試。只有字符串中的每個(gè)字符(以及最后一個(gè)字符后面的位置)都經(jīng)歷了這樣的過程之后,還沒有成功匹配,那么正則表達(dá)式就宣布徹底失敗。
[0009]但是,上述采用正則表達(dá)式進(jìn)行關(guān)鍵字模糊匹配,對正則表達(dá)式本身要求很高,并且只能匹配一種編碼,以及匹配過程中需要回溯,使得匹配靈活性很差,匹配效率很低。
【發(fā)明內(nèi)容】
[0010]本發(fā)明提供的關(guān)鍵字模糊匹配方法及裝置,以解決現(xiàn)有技術(shù)中采用正則表達(dá)式進(jìn)行關(guān)鍵字模糊匹配靈活性差,匹配效率低的問題。
[0011]根據(jù)本發(fā)明實(shí)施例的第一方面,提供了一種關(guān)鍵字模糊匹配方法,所述方法應(yīng)用于網(wǎng)絡(luò)設(shè)備上,包括:
[0012]獲取待匹配的第一目標(biāo)文本;
[0013]利用第一狀態(tài)機(jī)對所述第一目標(biāo)文本進(jìn)行第一遍歷,得到與預(yù)設(shè)干擾字符相對應(yīng)的匹配干擾字符,并從所述第一目標(biāo)文本中抽取所述匹配干擾字符,所述抽取后的文本為第二目標(biāo)文本;
[0014]利用第二狀態(tài)機(jī)對所述第二目標(biāo)文本進(jìn)行第二遍歷,得到與預(yù)設(shè)關(guān)鍵字相對應(yīng)的匹配關(guān)鍵字,并根據(jù)所述匹配關(guān)鍵字進(jìn)行相應(yīng)的關(guān)鍵字處理。
[0015]優(yōu)選地,所述方法還包括:根據(jù)預(yù)設(shè)干擾字符構(gòu)建所述第一狀態(tài)機(jī)、以及根據(jù)預(yù)設(shè)關(guān)鍵字構(gòu)建所述第二狀態(tài)機(jī)。
[0016]進(jìn)一步優(yōu)選地,所述根據(jù)所述預(yù)設(shè)干擾字符構(gòu)建所述第一狀態(tài)機(jī)具體包括:對所述預(yù)設(shè)干擾字符進(jìn)行至少一種形式的編碼,得到第一編碼結(jié)果集合,并根據(jù)所述第一編碼結(jié)果集合生成所述第一狀態(tài)機(jī);
[0017]以及,所述根據(jù)所述預(yù)設(shè)關(guān)鍵字構(gòu)建所述第二狀態(tài)機(jī)具體包括:對所述預(yù)設(shè)關(guān)鍵字進(jìn)行至少一種形式的編碼,得到第二編碼結(jié)果集合,并根據(jù)所述第二編碼結(jié)果集合生成所述第二狀態(tài)機(jī)。
[0018]進(jìn)一步優(yōu)選地,所述對所述預(yù)設(shè)干擾字符進(jìn)行至少一種形式的編碼,得到第一編碼結(jié)果集合具體包括:對所述預(yù)設(shè)干擾字符的配置編碼進(jìn)行轉(zhuǎn)碼處理,得到所述預(yù)設(shè)干擾字符對應(yīng)的至少一種轉(zhuǎn)置編碼,所述預(yù)設(shè)干擾字符的配置編碼和至少一種轉(zhuǎn)置編碼組成所述第一編碼結(jié)果集合;
[0019]以及,所述對所述預(yù)設(shè)的關(guān)鍵字進(jìn)行至少一種形式的編碼,得到第二編碼結(jié)果集合具體包括:對所述預(yù)設(shè)關(guān)鍵字的配置編碼進(jìn)行轉(zhuǎn)碼處理,得到所述預(yù)設(shè)關(guān)鍵字對應(yīng)的至少一種轉(zhuǎn)置編碼,所述預(yù)設(shè)關(guān)鍵字的配置編碼和至少一種轉(zhuǎn)置編碼組成所述第二編碼結(jié)果隹A
口 O
[0020]根據(jù)本發(fā)明實(shí)施例的第二方面,提供了一種關(guān)鍵字模糊匹配裝置,所述方法應(yīng)用于網(wǎng)絡(luò)設(shè)備上,包括:
[0021]獲取單元,用于獲取待匹配的第一目標(biāo)文本;
[0022]第一匹配單元,用于利用第一狀態(tài)機(jī)對所述第一目標(biāo)文本進(jìn)行第一遍歷,得到與預(yù)設(shè)干擾字符相對應(yīng)的匹配干擾字符,并從所述第一目標(biāo)文本中抽取所述匹配干擾字符,所述抽取后的文本為第二目標(biāo)文本;
[0023]第二匹配單元,用于利用第二狀態(tài)機(jī)對所述第二目標(biāo)文本進(jìn)行第二遍歷,得到與預(yù)設(shè)關(guān)鍵字相對應(yīng)的匹配關(guān)鍵字,并根據(jù)所述匹配關(guān)鍵字進(jìn)行相應(yīng)的關(guān)鍵字處理。
[0024]優(yōu)選地,所述裝置還包括:構(gòu)建單元,用于據(jù)所述預(yù)設(shè)干擾字符構(gòu)建所述第一狀態(tài)機(jī)、以及根據(jù)所述預(yù)設(shè)關(guān)鍵字構(gòu)建所述第二狀態(tài)機(jī)。
[0025]進(jìn)一步優(yōu)選地,所述構(gòu)建單元包括:
[0026]編碼子單元,用于對所述預(yù)設(shè)干擾字符進(jìn)行至少一種形式的編碼,得到第一編碼結(jié)果集合;以及,對所述預(yù)設(shè)關(guān)鍵字進(jìn)行至少一種形式的編碼,得到編第二碼結(jié)果集合;
[0027]狀態(tài)機(jī)生成子單元,用于據(jù)所述第一編碼結(jié)果集合生成所述第一狀態(tài)機(jī);以及,根據(jù)所述第二編碼結(jié)果集合生成所述第二狀態(tài)機(jī)。
[0028]更進(jìn)一步優(yōu)選地,所述編碼子單元還用于對所述預(yù)設(shè)干擾字符的配置編碼進(jìn)行轉(zhuǎn)碼處理,得到所述預(yù)設(shè)干擾字符對應(yīng)的至少一種轉(zhuǎn)置編碼,所述預(yù)設(shè)干擾字符的配置編碼和至少一種轉(zhuǎn)置編碼組成所述第一編碼結(jié)果集合;以及,對所述預(yù)設(shè)關(guān)鍵字的配置編碼進(jìn)行轉(zhuǎn)碼處理,得到所述預(yù)設(shè)關(guān)鍵字對應(yīng)的至少一種轉(zhuǎn)置編碼,所述預(yù)設(shè)關(guān)鍵字的配置編碼和至少一種轉(zhuǎn)置編碼組成所述第二編碼結(jié)果集合。
[0029]應(yīng)用本發(fā)明實(shí)施例,由于第一狀態(tài)機(jī)和第二狀態(tài)機(jī)能夠支持多種編碼,故使用第一狀態(tài)機(jī)和第二狀態(tài)機(jī)進(jìn)行關(guān)鍵字模糊匹配,也能夠支持多種編碼,而且時(shí)間復(fù)雜度與預(yù)設(shè)關(guān)鍵字的數(shù)目和長度無關(guān),一次可匹配多個(gè)預(yù)設(shè)關(guān)鍵字,提高了匹配的靈活性和效率。
【附圖說明】
[0030]圖1是應(yīng)用本發(fā)明實(shí)施例關(guān)鍵字模糊匹配方法的應(yīng)用場景示意圖;
[0031]圖2是本發(fā)明關(guān)鍵字模糊匹配方法的一個(gè)實(shí)施例流程圖;
[0032]圖3是本發(fā)明關(guān)鍵字模糊匹配方法的另一個(gè)實(shí)施例流程圖;
[0033]圖4是本發(fā)明關(guān)鍵字模糊匹配方法的再一個(gè)實(shí)施例流程圖;
[0034]圖5是本發(fā)明關(guān)鍵字模糊匹配裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖;
[0035]圖6是本發(fā)明關(guān)鍵字模糊匹配裝置的一個(gè)實(shí)施例框圖。
【具體實(shí)施方式】
[0036]為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明實(shí)施例中的技術(shù)方案,并使本發(fā)明實(shí)施例的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖對本發(fā)明實(shí)施例中技術(shù)方案作進(jìn)一步詳細(xì)的說明。
[0037]參見圖1,為應(yīng)用本發(fā)明實(shí)施例關(guān)鍵字模糊匹配方法的應(yīng)用場景示意圖。
[0038]圖1中示出了一種關(guān)鍵字模糊匹配系統(tǒng)組網(wǎng)架構(gòu)。其中,網(wǎng)絡(luò)設(shè)備11可以放置在網(wǎng)絡(luò)與終端之間,也可以放置在網(wǎng)絡(luò)之間,對經(jīng)過的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行關(guān)鍵字模糊匹配,比如:當(dāng)終端用戶訪問一個(gè)網(wǎng)頁,如果訪問網(wǎng)頁中包含關(guān)鍵字,則網(wǎng)絡(luò)設(shè)備11對訪問網(wǎng)頁進(jìn)行關(guān)鍵字模糊匹配,并根據(jù)匹配結(jié)果可以進(jìn)行阻斷或告警等過濾處理。該網(wǎng)絡(luò)設(shè)備11可以是審計(jì)設(shè)備,也可以防火墻。當(dāng)然,網(wǎng)絡(luò)設(shè)備11也可以是其他的設(shè)備,只要具有關(guān)鍵字模糊匹配功能即可。
[0039]網(wǎng)絡(luò)設(shè)備11通過使用第一狀態(tài)機(jī)和第二狀態(tài)機(jī)進(jìn)行關(guān)鍵字模糊匹配,實(shí)現(xiàn)了能夠支持多種編碼的功能,而且時(shí)間復(fù)雜度與預(yù)設(shè)關(guān)鍵字的數(shù)目和長度無關(guān),一次可匹配多個(gè)預(yù)設(shè)關(guān)鍵字,從而提高了匹配的靈活性和效率。其中,第一狀態(tài)機(jī)和第二狀態(tài)機(jī)皆是采用多模式匹配AC算法構(gòu)造的,在此,將第一狀態(tài)機(jī)定義為第一 AC狀態(tài)機(jī),第二狀態(tài)機(jī)定義為第二 AC狀態(tài)機(jī),并適用于以下所有實(shí)施例。另外,AC算法中的AC是Aho and Corasick的簡寫。
[0040]下面結(jié)合附圖對本發(fā)明關(guān)鍵字模糊匹配方法的實(shí)施例進(jìn)行詳細(xì)描述。
[0041]參見圖2,為本發(fā)明關(guān)鍵字模糊匹配方法的一個(gè)實(shí)施例流程圖,該方法可以應(yīng)用于網(wǎng)絡(luò)設(shè)備上,包括以下步驟:
[0042]步驟210:獲取待匹配的第一目標(biāo)文本。該第一目標(biāo)文本可以是網(wǎng)絡(luò)應(yīng)用層的數(shù)據(jù)文本,比如,用戶訪問網(wǎng)頁的內(nèi)容。
[0043]步驟220:利用第一狀態(tài)