最近這陣子真的是被機器人垃圾留言給灌得煩了。
原本部落格也有自動審查擋廣告的機制,不過大約也每天還是有一些逃過系統判斷的,大約幾篇到十來篇左右。當然這數字還是比真正的留言多得太多,因此設置了留言審查。要嘛就請登入(Google 或 Yahoo)留言,匿名的話就得等我看過不像垃圾留言才會放行。
不過最近一個多月垃圾留言的情況有變本加厲的情形。有多猖狂呢?大概是每天光逃過系統判斷需要手動處理的垃圾就有一兩百篇。至於垃圾資料夾的總量……系統會自動清理十四天前的部份,所以十四天累計量大約是一萬出頭。
除下來大約是每兩分鐘一篇左右。
雖然租用的 hostmonster 空間號稱硬碟和流量都無上限。不過理所當然要是消耗太多,他們可能哪天還是會介入並且請人搬家或升級服務的。
剛開始我只是一個個 IP 封鎖,但是效果不彰。直接把被攻擊的幾篇文章關閉回應,部落格後台是清靜了,但是整體流量其實沒什麼減少。後來看看 log,發現這些傢伙還是一直在讀取特定頁面試圖送出回應。不過它們有個共通點,就是 user agent 顯示為「Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)」。
上網稍微查了一下,發現這個的意思是 IE6 + XP。
姑且不論這些機器人是真的用 IE6,還是從 IE6 的 code 裡面偷了什麼東西出來用。根據 google analytics 的資訊,雖然我網頁的(活人)流量有大約三分之一都使用 IE 瀏覽器,但使用 IE6.0 版本的人大概每天讀取的頁面大概只有 1.3 頁左右,其他絕大多數都已經乖乖升級瀏覽器了。相較之下這些機器人一小時左右就存取我兩百到四百頁(發一篇垃圾留言要讀我前台一到兩頁後台兩頁……),怎麼取捨看起來很清楚了……
所以我只好在 .htaccess 請 IE6 + XP 吃 403 了。(精確地說,應該是 user agent Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;) 啦。)
(另外也發現有隻大陸搜尋引擎的蜘蛛一小時爬我三百多頁……叫什麼即刻搜尋 JikeSpider 的,也請它不要再來了。人家 googlebot 一天爬兩百頁資料齊就全到爆炸,一小時三百頁還爬不出個鳥來實在……還好這廝似乎還不算壞,在 robot.txt 裡註明一下就不來了。)
雖然吃了 403 的機器人還是會造成一些流量消耗,不過總流量已經立刻剩下三分之一左右,可喜可賀可喜可賀。
而既然垃圾攻擊吃了 403,原本的部落格留言審核暫時似乎可以取消,讓大家自由留言了。(當然,如果哪天又有沒辦法這樣擋的壞傢伙大量出現,也許又得開始審核也不一定……)