近來有幾位自架blog站的blogger都先後受到spammer的留言攻擊﹐戰情慘烈﹐勝負也是一面倒——blogger們都被可惡的spammer掩沒了。
我早前也嚐過這種苦了﹐也試過被人停權﹐後來才發現﹐spammer基本上是不用實質“留言”來拖垮網站﹐只要連續去scan某個特殊檔案(在wordpress內的就是wp-trackback.php和wp-comments-post.php)﹐就足以令server load增加到一個不尋常的地步。
解決辦法試過好幾招﹐有效的包括﹕
- 停用wp-trackback.php﹐或索性改檔案屬性﹐令檔案“消失”
- 裝Bad Behavior
- 改.htaccess去強制阻截spammer
這個未必人人合用﹐但如受到trackback襲擊的話﹐這個就能100%令攻擊消失
聽聞BB的功能是先截擊(相對起SK2等是先容許留言再檢視)﹐使spammer連php檔都觸不到。個人覺得效果 50/50 ﹐有機會殺錯良民。
改.htaccess是一個蠻危險的手段﹐因為偶一不慎寫錯了的話﹐隨時連網站都連不上。以下是我早前因為trackback.php的追擊問題而找回來的.htaccess 改動方法。用法人人不同﹐最重要的是細讀自己網站的access log﹐找出spammer的特定模式再去阻截。例如我發現spammer通常假扮google, 利用POST的手段去讀取wp-trackback.php。因為基本上沒有理由google會用POST去讀wp-trackback.php(總不會是google想trackback我吧﹖﹕)﹐所以我就加入.htaccess內﹐有任何同樣的狀況就自動阻截﹐並回應對方Forbidden Error, 令對方以為這個檔案已經不存在。
RewriteEngine On
RewriteCond %{REQUEST_URI} wp-trackback\.php
RewriteCond %{REQUEST_METHOD} ^POST$
RewriteCond %{HTTP_REFERER} (google|freakycheats|psxtreme|chat-nett|terashells|victimlog|crescentarian|yelucie) [NC]
RewriteRule ^.*$ - [F]RewriteCond %{HTTP_USER_AGENT} ^Crescent [OR]
RewriteCond %{HTTP_USER_AGENT} ^CherryPicker [OR]
RewriteCond %{HTTP_USER_AGENT} ^CherryPickerSE [OR]
RewriteCond %{HTTP_USER_AGENT} ^CherryPickerElite [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^ia_archive [OR]
RewriteCond %{HTTP_USER_AGENT} ^ia_archiver [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*NEWT [OR]
RewriteCond %{HTTP_USER_AGENT} ^[Ww]eb[Bb]andit [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebEMailExtrac.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^NICErsPRO [OR]
RewriteCond %{HTTP_USER_AGENT} ^Telesoft [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSFrontPage [OR]
RewriteCond %{HTTP_USER_AGENT} ^TV33_Mercator [OR]
RewriteCond %{HTTP_USER_AGENT} ^MSIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Microsoft.URL
RewriteRule ^.*$ - [F]
這些都是我自己土法解決spammer的攻擊﹐或許有更好的方法吧﹖有的話不妨留言分享一下。
BB 只要稍作修改,不檢查 third-party blacklist 的話,殺錯良民的機會應該很少.
點解這個世界咁多無無聊人架?
@天佑﹐這個我有讀過你的文章﹐修改了BB﹐嘻嘻﹐所以希望沒有殺錯良民吧﹗ ﹕)
@fresh, 奇怪吧﹖損人不利己的事﹐還真是有很多人在做呢﹗
標題, 是”關於”~ :)
@sidekick, 哎也…………..
>_< ~
最近akismet成日失效, 每日都好多spam去咗moderation, 而且每日都會漏幾條spam, 好煩啊…
@檸檬ed, 用Bad Behavior SK2, 效果唔錯架﹗
trackback 基本能控制住,其他我暂时只能靠要求注册来阻止 :(
@Antonio, WordPress 還有幾款plug-in可以阻截spam, 不知你試過沒有? 如果不想用plugin, 也可以試試剛看到的.htaccess修改法來阻截垃圾留言。
事在人為嘛. 不過, 大環境實在變得太快. 今天的標準可以是明日黃花!
@mini storage, 都是用來參考罷了~