摘要:該文在介紹網頁過濾技術的基礎上,針對非法網頁采取給敏感關鍵詞加入“干擾”的特點,提出了一種關鍵詞匹配的改進算法,經測試,該算法取得了良好的效果。
關鍵詞:過濾算法;網頁過濾;關鍵詞匹配
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)33-9192-03
A Web Filtering Application and Implementation of Improved Algorithms
CHENG Ji-peng
(Heifei Railway Engineering School, Hefei 230011, China)
Abstract: On the bases of introducing web filtering technology, the paper puts forward an improved keywords match algorithm which is against that the illegal networks escape the detection of various web-monitoring systems by adding \"interference\" to the sensitive. After testing, the algorithm has achieved good results.
Key words: filter algorithm; web filtering; keywords matching
隨著Web技術的發展成熟,網頁逐漸成為互聯網上信息交互的重要工具,對網頁中不良信息的過濾也成了網絡內容過濾的主要應用之一。所謂的網絡內容過濾,就是根據某種網絡安全的規定,通過一定的工具屏蔽掉網絡信息流中不安全的內容,對不安全的內容的定義根據用戶的不同而不同。
1 常用的網頁過濾技術
目前,被各種過濾系統普遍采用的過濾方法可以概括為五種類型:PICS標簽、URL攔截、關鍵詞過濾、智能實時內容分析以及網頁分類過濾。
1.1 網頁分級標注
網頁分級標注是按照一定的分級規定對網頁的內容按不同類目的標準分級標注,再根據網頁的分級標記進行過濾的方法。目前得到廣泛認可的網頁內容分級體系是因特網內容選擇平臺PICS,它是由萬維網聯盟于1995組織MIT、IBM等當時互聯網上的主導力量成立的工作小組制定的一套技術規范。隨著PICS技術規范的不斷完善,許多網頁分級機構都采用了PICS分級體系對網頁進行標注,因此,PICS標注成為了網頁過濾系統中采用的過濾方法之一。由于目前還沒有對發布的網頁加上分級標記的強制或鼓勵機制,對一些不良信息的網頁,制作者更不可能加上分級標記,因此,PICS對于網絡內容過濾系統來說僅僅是個輔助的過濾方法。
1.2 URL過濾
URL規定了某一特定信息資源在WWW中存放地點的統一格式,即地址指針。URL過濾的原理是首先截獲用戶請求的URL地址,將該地址與預設的URL列表做比較,從而判斷用戶所請求的網絡資源是否合法。通常URL過濾需要維護兩種類型的列表,一個稱為“黑名單”,包括禁止訪問的目標網站的URL,其工作原理是首先假設除了列表中的資源外所有資源都是合法的,僅僅禁止用戶訪問列表中的資源;另外一個稱為“白名單”,包括允許訪問的網站的URL列表,其原理是假設除了列表中的資源外所有的資源都是非法的,僅僅允許用戶訪問列表中的資源。
1.3 關鍵詞過濾
“關鍵詞過濾”通過檢查網頁中是否出現敏感詞語來決定用戶請求訪問的網頁是否合法,其原理是將網頁中出現的詞和短語與關鍵詞詞典中設定的非法敏感關鍵詞進行匹配,當匹配的個數達到預設的值時,則禁止用戶訪問該網頁。關鍵詞過濾方法是一種直接的方法,能快速檢查一個網頁是否包含非法內容。但此方法因不能區分詞在不同語境中的歧義現象,常會以偏概全,存在“過度攔截”的問題。
1.4 實時智能內容分析
實時智能內容分析就是利用自然語言處理、人工智能等技術實時地對網頁中的文本、圖片等內容進行分析,從而判斷網頁的內容是否合法。目前實時智能內容分析過濾主要是基于網頁文本內容的分析。基于文本內容分析算法方法主要有:潛在語義索引法和神經網絡法。潛在語義索引法過濾精度較高,而神經網絡法依照人們的長期實踐經驗,模仿了人腦對信息進行過濾的原理,并結合各種數學模型來實現它的功能,因此具有很強的自學習功能和自適應能力。
1.5 網頁分類過濾
這種過濾方法在用戶請求訪問網頁之前,就己經對網頁的內容進行分析,并根據分析的結果將網頁分類,并生成URL分類列表,用戶在請求訪問某個網頁時,過濾系統會根據系統管理者的設置,按照請求的地址所屬的分類列表的過濾策略進行判斷是否屏蔽該網頁。網頁分類過濾方法關鍵在于如何將網頁分類。最初的網頁分類是由人工完成的,為了提高網頁分類的效率,目前,大多數的Web內容過濾系統都采用智能內容分析的方法對網頁進行分類。
2 幾種不同過濾方法的比較
為了使網絡內容過濾系統能有效地工作,系統設計者們通常根據各個系統的使用領域的實際情況選擇合適的過濾方法,有的系統還針對特定的過濾方法進行改進,以改善某個過濾方法的局限性。幾種過濾方法都有其自身的優點和缺點如表1所示。
3 關鍵詞過濾的實現
關鍵詞過濾就是將網頁中出現的詞和短語與設置的過濾關鍵詞典進行匹配,根據匹配的結果判斷網頁是否允許訪問。網頁是以超文本語言(HTML)發布的,URL獲取的網頁內容是HTML文檔,HTML文檔里包含了大量的HTML標記,這些標記跟網頁內容無關而且還會影響關鍵詞的匹配。因此,為了提高關鍵詞匹配的效率和準確率,在匹配之前先對獲得的HTML文檔進行去除HTML標記的預處理。
3.1 HTML文檔預處理
HTML文檔通常由三部分組成:版本信息行、頭部信息(HEAD)和主體(BODY)部分,其中主體是HTML文檔的主要部分,包含實際的文檔內容。
HTML中的元素可以嵌套,但是嵌套的必須是完成的元素,不能出現開始標記嵌套而結束標記卻沒有嵌套這類情況。HEAD元素里包含了關于所在網頁的信息。它通常包括下面四個元素:TITLE元素,LINK元素、STYLE元素、META元素。TITLE元素定義了HTML文檔的標題;LINK元素用于建立HTM文檔和外部文件的鏈接;STYLE元素用于設置網頁內部樣式表;META元素用來描述網頁的有關信息,如作者、終止日期等。
3.2 字符串匹配
字符串匹配(簡稱“串匹配”)問題可以理解為從給定的符號序列T中找出一個或者一組具有某種屬性的符號序列p,其中T稱為文本,p稱為模式串。給定字符串abc,稱a是ab的一個前綴,稱b是ab的一個后綴,b是abc的一個因子。字符串匹配是計算機科學中最古老、研究最廣泛的問題之一。
串匹配算法有兩種分類方法:1) 根據功能分,串匹配算法可分為三類:精確匹配算法、近似匹配算法和正則表達式匹配算法; 2) 根據模式串的數量,把字符串匹配分為單模式字符串匹配和多模式字符串匹配。單模式匹配算法每次只能搜索一個目標串,而多模式匹配算法一次可以匹配多個串。
很多非法網站為了逃避各種監控系統的監測,都會在網頁上加一些“干擾”,如將“法輪功”,表示成“法_輪功”等形式,這樣對網頁的瀏覽者閱讀影響不大,但對網頁過濾系統的匹配算法提出了要求,若采用精確匹配算法,對含有這種“干擾”的網站將不能進行有效的過濾。
3.3 改進的關鍵詞匹配算法
根據對非法網頁的統計分析,網頁中對非法敏感關鍵詞的處理主要有以下三種手段:
1) 在關鍵詞中加入非漢字字符,如將“法輪功”,表示成“法_輪功”、“法#輪功”等;
2) 用同音字代替關鍵詞中的某個字,如將“法輪功”表示成“發輪功”、“法倫功”等;
3) 把關鍵詞中的某個字拆分,如將“法輪功”表示成“法輪工力”、“法車侖功”等。
顯然,關鍵詞詞典是不可能包含這些敏感關鍵詞及其所有變體的,本文改進的關鍵詞匹配算法就是針對網頁的這種“干擾”手段,從有限的關鍵詞出發,掃描預處理的文本文件text.txt,搜索出該關鍵詞的可能的所有變體,并以生成的變體為新的關鍵詞來掃描text.txt;同時對三字以上的關鍵詞還設定了允許誤差值(關鍵詞與文本中掃描到的詞不同的漢字個數),在允許的誤差范圍內,則判為匹配成功,如對三字詞設置的允許誤差值為1,則“法輪功”與“法輪功”、“發輪功”匹配都成功。
算法描述如下:
① 從關鍵詞列表中取出一個關鍵詞,用該關鍵詞對文本文件text.txt掃描,記錄該關鍵詞出現的次數c,然后把該關鍵詞分解為單個字。
② 用單字對文本文件text.txt掃描。
③ 當發現匹配的字時,從發現位置開始,向上下文用其他單字作關鍵詞來掃描。
④ 若在文本中找到關鍵詞分解出的所有單字,則轉⑥,如果只找到部分單字,則轉⑤。
⑤ 該關鍵詞如果是三字以上的詞,如在文本中掃描到的詞與該關鍵詞的匹配在允許的誤差為范圍內,則轉⑥;如果該關鍵詞是二字詞,則轉⑧。
⑥ 判斷這些字跨越的串長度是否超出了預定的值,若超出,則轉⑧;若沒有超出值,則把包含所有上述單字的最小長度的串p作為新的關鍵詞,重新掃描文本,記錄p出現的次數c,判斷c,是否超過值,若超過則轉⑦,否則轉⑧。
⑦ 該網頁是非法網頁,攔截,并將該網址加入黑名單。
⑧ 該網頁是合法網頁,顯示該網頁。
在算法步驟⑥中,對關鍵詞出現的次數的統計作了處理,即對變體串p出現的次數加了修正值a,這是因為根據統計分析的結果,合法網頁中,出現關鍵詞變體是個別的筆誤現象,而非法網頁中,則通常是逃避各種過濾系統監控的一種手段,所以當網頁中出現關鍵詞變體時,該網頁是非法網頁的可能性就變大,因此給關鍵詞變體串p出現的次數加上大于1的修正值,可提高對非法網頁過濾的準確性。
4 實驗結果及分析
為了對改進的關鍵詞過濾方法的過濾效果進行評估,本文搜集了100份非法網頁樣本和100份合法網頁樣本,并用包含退黨聲明、法輪功、激情視頻等20個關鍵詞的過濾關鍵詞列表算法中值的設置進行了多次測試,測試結果令人滿意。
5 結束語
該文僅采用了關鍵詞過濾與其他網頁過濾系統進行比較,雖然所選的網頁樣本具有一定的局限性,但實驗結果依然能表明本文改進的關鍵詞過濾算法取得了良好的效果。關鍵詞過濾對合法網頁的過度攔截問題是影響過濾準確率的重要因素,但是隨著系統網址白名單列表的完善,網頁過濾的準確率完全可以達到令人滿意的效果。
參考文獻:
[1] 張志剛,陳靜.一種HTM工網頁凈化方法[J].情報學報,2004,23(4):387-393.
[2] 潘振業.基于模式匹配和協議分析的入侵檢測系統設計[D].陜西:西安電子科技大學,2005.
[3] 徐國勝.網絡內容過濾關鍵技術與研究[D].成都:電子科技大學,2007.
[4] 申晉祥.網絡入侵檢測系統關鍵技術研究[D].中北大學,2007.
[5] 范黎林,王曉東.一種用于垃圾郵件過濾的中文關鍵詞匹配算法明[J].河南科技大學學報:自然科學版,2006,27(5):35-37.
[6] 陳儒,張宇.面向中文特定信息變異的過濾技術研究[J].高技術通訊,2005,15(9):7-12.