2017-07-10 51 views
0

SpamAssassin有幾條規則試圖檢測「隨機查找」值。例如:瞭解SpamAssassin HK_RANDOM正則表達式

/^(?!(?:mail|bounce)[_.-]|[^@]*(?:[+=^~\#]|mcgr|kpmg|nlpbr|ndqv|lcgc|cplpr|[email protected])|[^@]{26}|.*[email protected]{0,20}\bcmp-info\.com$)[^@]*(?:[bcdfgjklmnpqrtvwxz]{5}|[aeiouy]{5}|([a-z]{1,2})(?:\1){3})/mi 

據我瞭解,正則表達式的第一部分,防止某些狀況下匹配:

(?!(?:mail|bounce)[_.-]|[^@]*(?:[+=^~\#]|mcgr|kpmg|nlpbr|ndqv|lcgc|cplpr|[email protected])|[^@]{26}|.*[email protected]{0,20}\bcmp-info\.com$) 

不過,我無法理解如何在第二部分檢測「隨機性」。任何幫助將不勝感激!

/[^@]*(?:[bcdfgjklmnpqrtvwxz]{5}|[aeiouy]{5}|([a-z]{1,2})(?:\1){3})/mi 

回答

0

它將匹配包含5升連續的輔音(不包括由於某種原因hs)字符串:

[bcdfgjklmnpqrtvwxz]{5} 

或5個連續的元音:

[aeiouy]{5} 

或相同的字母或耦合字母重複3次(現4次):

([a-z]{1,2})(?:\1){3} 

下面是字符串的幾個例子,它將匹配:

somethingmkfkgkmsomething 
aiaioe 
totototo 
aaaa 

這顯然無法檢測隨機性,但它可以識別模式不經常發生的有意義的字符串,並提及這些模式看隨機。

這些模式也是可能的,這些模式是在分析了由垃圾郵件製造者製作的大量電子郵件之後「從經驗」構建的,並且實際上會反映這些垃圾郵件製造者使用的工具背後的算法或他們用來創建這些工具的過程電子郵件(例如某種程度的鍵盤混合?)。

底注是你無法檢測到單個數據的隨機性。然而,你可以做的是試圖檢測目的,如果你沒有找到任何東西,那麼就儘可能地假設你的知識是隨機的。 SpamAssasin假設了一些關於人類交流的規則(它可能適合不同的語言,可能會更好或更差,因爲它會標記幾種法語的不完善時態,比如「échouaie nt」),如果內容與他們不匹配它將其報告爲「隨機」。