2016年10月16日

對抗 Blogger 垃圾留言全紀錄

A+
blogger-spam-comment-對抗 Blogger 垃圾留言全紀錄雖然本站沒有限制 Blogger 帳號才能留言、沒使用字詞驗證,不過也不太擔心垃圾留言,因為我會 "手動標示" 垃圾留言,讓 Blogger 過濾系統好好學習判斷模式。因此現在若遇到一般的色情廣告留言,基本上都會被系統直接判定為垃圾留言,不太需要操心。

但是前陣子遇到一個進化過的「垃圾留言開發人員」,無論我如何用各種手段封阻,他都有辦法持續在 WFU BLOG 成功留言,連多次類似的留言內容都不會被 Blogger 判為垃圾留言。

對於這個奇特的模式與案例,著實讓我花了點時間來研究破解方法,請見本篇詳細的紀錄。

(圖片出處: 699pic.com)


一、Blogger 處理垃圾留言的原理


1. 過濾機制

基本上 Blogger 過濾垃圾留言的能力不弱,而且還有學習能力,詳細的運作原理可參考這篇「Blogger 的垃圾留言過濾機制是甚麼回事?」。

簡單說,只要 Blogger 使用者越勤勞,無論是將沒被判定為垃圾留言的留言,手動標示為垃圾留言,或是將誤判為垃圾留言的留言,手動恢復為正常留言,都能幫助 Blogger 過濾系統越來越強大

另外,官方如何定義垃圾留言的範圍,可參考官網頁面「Blogger 內容政策」。


2. 反制策略

既然 Blogger 使用共同學習的機制,那麼會不會「水能載舟,也能覆舟」?

有心人士在發垃圾留言之前,先大量在自己能控制的 Blogger 留言特定內容,自己標示非垃圾留言,讓系統學習起來,確保將來不會被判為垃圾留言。

如果這招能成立,那麼就是系統的盲點了。



二、最棘手的案例


最近遇到的垃圾留言攻擊事件,奇特的是看起來像機器人般、有著固定模式,但卻又有辦法針對我的防禦,進行見招拆招。

blogger-spam-comment-1-對抗 Blogger 垃圾留言全紀錄

上圖是 10/4 這天的所有攻擊紀錄:

  • 對手非常厲害,這些留言全部沒有被判定為垃圾留言,縱使我一看到留言,馬上手動標為垃圾留言,仍然沒有被系統學習起來。
  • 仔細看了留言內容,雖然都是相似的句子,但每句話都刻意替換一兩個單字,讓每則留言不會成為完全一樣的字串,看來有針對系統漏洞,進行亂數腳本的設計。
  • 同時也讓我懷疑攻擊者有研究過「一、Blogger 處理垃圾留言的原理」→「2. 反制策略」的可能性。
  • 一般複製貼上的留言,很容易就被判定為垃圾留言,但這個攻擊者顯然不使用複製貼上,推斷他使用「按鍵精靈」之類的程式進行機械化輸入
  • 仔細觀察其模式,留言時間非常規律,每 5 ~ 10 分鐘就發一則留言,可確定是利用程式在跑
  • 確定是程式就好辦了,於是使出絕招,開啟「字詞驗證」,這樣機器人就沒輒了吧 → 沒想到竟然失效,照樣可以正常留言!!
  • 百思不得其解,那麼唯一的可能性,就是對方使用綜合技:亂數留言程式 + 按鍵精靈 + 手動輸入字詞驗證
  • 為了對付這個最極端的對手,只好放大絕招:開啟「留言審查」!
  • 說也奇怪,留言審查一啟動之後,攻擊者發現留言無法立即出現在網頁上後,就停止留言了!

這樣的結果,讓我確定攻擊者的確混合了 "自動" 與 "手動" 的留言方式,才有辦法洞悉我開啟了留言審查,這真是我遇過最頑強的對手!

一方面可以確認「留言審查」是對付垃圾留言的最強武器,一方面也可知道,攻擊者發現網站對垃圾留言的防禦力很高時,也會為了節省時間精力,而另尋攻擊目標。



三、留言最佳處理方式


1. 事件後續

由於我不喜歡開啟「留言審查」,因此看到攻擊者沒再留言後,推測已經轉移目標,就關閉了「留言審查」功能。

blogger-spam-comment-2-對抗 Blogger 垃圾留言全紀錄

結果沒想到 10/6 又看到此人的留言,看來他還是不時會試探有無攻擊的可能性。

因此我只好持續開啟「留言審查」好幾天,觀察到他 10/7 再留一次發現無效果(需要審查) 之後,至今沒有再看到留言了。


2. 啟用「留言審查」時期

從本篇 WFU 的經歷可瞭解,在遭到垃圾留言的攻擊期間,可開啟「留言審查」來應付。

不過啟用此功能後,需要記得設定留言管理的信件通知,否則我們就無法得知有留言了。

blogger-comment-moderation-對抗 Blogger 垃圾留言全紀錄

從後台 → 設定 → 文章、留言和分享設定 → 留言管理 → 一律 → 將電子郵件管理要求寄給 → 填入 email,最後按螢幕右上角的「儲存設定」即可。


3. 承平時期

為了讓讀者使用上有好的友善體驗,我不喜歡「禁止匿名」、使用「字詞驗證」、「留言審查」等限制,這會降低讀者的留言動力

畢竟 "對付垃圾留言" 的麻煩,跟 "獲得讀者留言意見" 的益處,兩者遠遠無法相提並論,不太可能為了省下處理垃圾留言的時間,而犧牲了與讀者交流的機會。

同時,讀者留言對 SEO 也是有益處的,可參考「Blogger 官方留言板的優點及妙用﹍加強 SEO 搜尋排名」。

因此,建議承平時期,也就是不會遭受垃圾留言攻擊的期間,就將「留言審查」等功能關閉。

等真的有遭受攻擊時,再開啟「留言審查」來防範即可。攻擊者有一大堆口袋名單等著攻擊,不太會專門針對單一網站。因此只要久攻不下,就會立刻轉移對象的。



四、補充


會不會有一種攻擊者,沒有口袋名單,就是要找我們網站的碴,每隔一段時間就來放垃圾留言呢?

真是如此的話,那麼「三、留言最佳處理方式」也將失效。

不過,WFU 連「BLOGGER 留言有禁止訪客自刪的功能嗎?」都能寫出來了,再弄個 "留言黑名單" 的功能也不是什麼難事,就看會不會有這樣的留言者出現了。


更多 Blogger 留言相關文章:

9 則留言:

  1. 留言黑名單,應該很複雜。 功能使用人數也不多,
    你正好說到回覆的電子郵件通知,我就有個想法,如果在電子郵件通知內,可以顯示到留言者的信息(如留言者的IP,操作系統,瀏覽器版本...),就更好了。 因為這類信息,對某些站長可能就非常有意義。

    回覆刪除
    回覆
    1. 可惜這是後端才能取得的資訊,前端無法取得~

      刪除
  2. 請問一下,目前遇到疑似廣告且不斷重複留言相同的內容者,唯一方法就是開啟審查了嗎?

    謝謝!

    回覆刪除
    回覆
    1. 我知道你大概已經有答案了,只是想再確認一下對不對,不過對於 yes, no 的問題,我相信自己測試出答案不會有什麼難度,除非你不知道交叉測試的過程與方法,而這篇的內容也足以讓你判斷你要的答案在哪裡。

      如果你要問的不是單純 yes, no 的問題,那麼或許提問的內容,不要看起來像是只是要得到 yes, no 的答案。

      刪除
    2. 我只是單純想著BLOGGER本身有沒有封鎖該帳號的功能之類的0.0

      因為我的部落格幾乎所有功能都從你這邊學習而來,因此想問問有無其他方式(工具)、避免開啟審查功能。

      刪除
    3. 這樣問就對了,以後提問要讓別人知道你真正要問的問題是什麼。

      不過 "BLOGGER本身有沒有封鎖該帳號的功能" → 你在後台找找就知道了,沒這樣的功能。

      我提到的黑名單功能,除非遇到我無法解決的狀況,才有可能來寫,目前沒這個計畫喔~

      刪除

張貼留言注意事項:

◎ 勾選「通知我」可收到後續回覆的mail!
提問請附網址、詳細描述狀況,如提供的資訊不足,則無法回覆。
◎ 請在相關文章留言,與文章無關的主題請至「Blogger 中文論壇」。
◎ 若詢問 CSS 、非官方範本問題、或貴站為商業網站 ,請參考「本站諮詢頁面」→「1. 諮詢服務」
◎ 若留言要輸入語法,"<"、">"這兩個符號請用其他符號代替,否則語法會消失!
◎ 若發現留言不見了,通常是因為 "複製貼上" 的內容常被系統判定為垃圾留言,請不用擔心,我會定期將留言恢復。
◎ 本站「已關閉自刪留言功能」。