MT(Movable Type) Spam自己DIY

| 2 Comments | No TrackBacks 分享

 最近被垃圾留言煩到一個極限了。原本垃圾留言的數量還可以接受,最近總覺得MT本身的Spam有點差了,每天總是一堆垃圾留言(不知是不是垃圾留言機器人的技術便高了)。

 所以決定幫自己的Blog作一些防護措施。原本想用圖形辨識方式,來增加門檻(要用眼睛看到圖形才辨識的出來),讓垃圾留言沒辦法這麼容易入侵。但後來發現圖形辨識防護其實已經沒什麼用了。為何這麼說呢!原因就在這各網站。PWNtcha。幾乎所有的圖形都已經可以被辨識,只有少數的圖形辨識率很低(但那種圖形有時連人都看不懂)。所以你覺得還可以用圖形來Spam嗎?!

 而且用圖形辨識還有一個缺點就是,使用者必須要自己輸入,其實也是造成使用者困擾。所以筆者想了想如何讓使用者不用另外輸入資訊,但也可以防止垃圾留言,結論就是:那些垃圾留言,其實都是一些機器人程式針對網站分析後,然後送出垃圾資訊。所以只要機器人程式無法分析(ex.Javascript。當然如果有人就是要攻擊你的網站,那就另當別論了),他送出來的資訊就會有問題。也就不會有垃圾留言了。

 筆者試了一下,發現的確有用。Spam上線後,就沒有留言了(看到這,你可別針對我的網站做攻擊喔!)。

 其實只有幾各步驟(但須修改程式),就讓筆者來一步一步敎你吧!

1.用記事本產生一個cAPTCHA.js檔案。檔案內容為:


var parentWin = document.getElementById("comments-form");
var pname=document.createElement("input");
pname.type="hidden";
pname.value="1"
pname.name = "cAPTCHA_id";
parentWin.appendChild(pname);


將檔案放到你的Blog的根目錄裡。

2.在MT後台管理介面的範本模組裡增加一個範本模組,新增名稱為:CAPTCHA。
內容為:


<script type="text/javascript" src="/cAPTCHA.js"></script>

PS.記的把cAPTCHA.js的路徑,改成第一步中你放置的位置。

3.在範本->彙整->單篇文章彙整與範本->系統->留言預覽範本中的 form下面加上


<form method="post" action...
<$MTInclude module="CAPTCHA"$>

4.修改MT的安裝目錄中的mt\lib\MT\App\Comments.pm,在sub post 裡面加上


sub post {
 ...
my $entry_id = $q->param('entry_id')
or return $app->error($app->translate("No entry_id"));

my $cAPTCHA_id = $q->param('cAPTCHA_id')
or return $app->error($app->translate("You are not allowed to post comments."));
return $app->error($app->translate("You are not allowed to post comments.")) if $cAPTCHA_id != 1;

 ...


修改後存檔。

5.重新建立整各Blog。

這樣你的Blog就有基本的防護垃圾機器人的機制了。
記得自己測試一下留言的功能正不正常。

雖然自己修改機制有點小麻煩,但卻比一般Plugin裡,需要使用者填寫一些其他資訊的機制,要人性一些。

如果你有更好的意見或想法,歡迎分享。

PS.此方式適用於3.x與4.x的MT版本

相關文章:

[教學]MT(Movable Type)4.x Plugin 相關文章(RelatedEntries)

10分鐘電子郵件,不怕收到垃圾信件

MT(Movable Type)4.x 修正後台Javascript錯誤

MT(Movable Type)4.x 修正記住我(Remember me)

垃圾郵件我不怕,信箱乾淨無汙染

在MT(Movable Type)4.x中加入關鍵字(keywords),讓搜尋引擎快快搜到!

MT(Movable Type)4.x啟動圖形驗證功能(Captcha)

MT(Movable Type)4.x 寄出的通知信編碼改成UTF8

MT升級4.01

MT(Movable Type)3.35發布嚕

將MT(Movable Type)的分月彙整(Archives)改成選單式

在MT(Movable Type)中加入關鍵字(keywords),讓搜尋引擎快快搜到!

在Apache 2上加裝 Fast-CGI 2.4.6

MT(Movable Type)3.34發布嚕

No TrackBacks

TrackBack URL: /cgi-bin/mt/mt-tb.cgi/83

2 Comments

聽說有這樣一個作法:

反向思考,在程式碼裡放一個欄位,ex:Msn,用css隱藏起來,這樣"常人"就看不到,但是robot就會中招去填資料.

因此有該欄位資料的是spam,沒資料的是正常訪客.

PS.此法對人肉robot無效

沒錯,我寫的這各做法對於那種真的想攻擊你的人也是無效的。
只能對那種"無意識"的機器人才有效。

筆者執行到現在,幾乎沒有垃圾留言。^^

Leave a comment

May 2014

Sun Mon Tue Wed Thu Fri Sat
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Archives

Powered by Movable Type 4.25