談談互動型網站中垃圾貼的應對方案
在互動型網站中常常會受到垃圾貼的困擾。我分享一點個人在垃圾貼處理方面的一點心得:
要處理垃圾貼必然需要分析垃圾貼的特征
1. 在內容上垃圾貼通常會帶有一個固定域名的外部鏈接,或者帶有QQ號碼,手機號碼,或者重復內容;
2. 在發帖頻率上有可能是某個用戶或者某個IP在短時間內發別多個帖子;
3. 在手段上高級一點的垃圾貼可能用發貼機,可能會使用不同ip,并附帶破解驗證碼的程序。
有了特征,我們看下如何對付垃圾貼
1. 反垃圾貼的最常用的手段就是驗證碼了
目前大多數網站的反垃圾機制都使用了驗證碼,驗證碼可以阻止部分機器發帖,并加大人工垃圾貼的成本。驗證碼有好壞之分,好的驗證碼的表現是不易被破解,或者說破解率很低;好的驗證碼通常是機器不容易識別而人比較容易識別的,通常都會有扭曲或字符的重疊;相反的一個差的驗證碼是機器容易識別而人不容易識別的,比如說只有噪點而未做扭曲的驗證碼。
例如下圖中的yahoo的驗證碼是好的驗證碼,它充分的扭曲,每個字符的扭曲的角度都不一樣,而且每個字符之間有粘連。
舉個反例,下面的就是不好的驗證碼,只做的噪點,每個字符都未做其他處理,破解程序很容易取出噪點分析出正確的結果
2. 通過分析發帖內容中的數字或者外網鏈接地址和規則來判斷發帖是否是垃圾貼。我們可以做一個HttpModule來判斷用戶的每一個post提交,如果用戶提交的內容中有外網地址或者數字,則記錄下來這個發帖人的用戶id,和ip地址,如果該用戶在某個可配置的時間段之內重復提交有相同的數字或相同域名的外網地址,則可以認定該用戶有發垃圾貼的嫌疑,并將此嫌疑用戶發到監視列表,在該用戶發表多于5次(可配置次數)包含疑似廣告內容時,就可以拒絕該用戶再發帖,并記錄日志
3. 如果是高質量的論壇,可以通過限制注冊,申請注冊的方式來做一些限制;或者在新用戶發表正常內容超過n篇之后才允許用戶直接發帖,在通過n篇認定的好帖之前,新用戶所發帖子都默認審核后方可顯示。
4. 設置禁用詞,對于已經確認為廣告的詞匯進行封禁。
5. 購買第三方的組件來做分析處理垃圾貼的工作,這個據說很貴,也有效果。
如果以上幾種方案都使用了,但是你還是沒有制止住垃圾貼,我還有一個殺手锏。通過用戶發帖的通過率來控制垃圾貼,即根據一個用戶發表內容的通過率來決定他的下一個帖子是否可以顯示出來,假定我要求通過率在90%以上的用戶發帖默認顯示出來,那么一個用戶要發一個廣告貼的代價就是先發9個正常的帖子,這種情況下垃圾貼基本上就可以被遏制住了。
以上是我個人的一點心得,如果你有更好的方法,請分享。我只寫了心得,沒有寫具體的技術實現,如果哪位有好的技術實現的話歡迎分享。