Anti-Spam Comments Project始動!

mt-scode.png
升級到3.15版的mt,每天都刪除100封以上的Spam-Comments,讓阿醜不得不痛定思痛尋找解決之道,在不會用blacklist(技術力不足)下選擇了S-code這個外掛,利用隨機數字的驗證方式進行迴響,希望能有效阻止Spam-Comments大軍的入侵(MT魂完全燃燒)


時程:
在參考了原作者JAMES SENG’SSolution for comments spams,以及薄荷Anti-Spam of Blog Comments罐頭防制發廣告機器人的檢核碼,從4月4號(兒童節)開始進行行動,4號當天完全被擊沉、5號一直陷入3.x及2.x的comments模版那個正確的迷思中,6號下午5點總算有一點點小成績出現,整個project事件算告一段落。
方式:
1.下載scode-0.1c.tar.gz最新版本,解開壓縮後會有readme、scode.pl、SCode.pm、scodetest.cgi四個檔案,請先打開README看使用方式。
2.檢查伺服器是否有支援perl的GD模組
3.編輯SCode.pm檔案,設定暫存資料夾的路徑(官方預設是temp/),這個要注意的是這個資料夾的層級是要和你的www資料(或是public_html)同一層,並且確定資料夾的權限是可以寫入的(官方推薦改成755)
4.將SCode.pm上傳到lib/MT/
5.將mt-scode.cgi上傳到plugins/,記得權限要改成755
6.將scode.pl上傳到plugins/
7.沒有灌blacklist外掛的,請用lib/MT/App/的Comments.pm。有用過blacklist的請到cgi-bin/extlib/jayallen /MTBlPost.pm。在上述兩個檔案中尋找

if (!$q->param(‘text’)) {
return $app->handle_error($app->translate(“Comment text is required.”));
}

之後加上以下段落

#
# SecurityCode hack start
#
require MT::SCode;
my $code = $q->param(‘code’);
my $scode = $q->param(‘scode’);
my $sscode = MT::SCode::scode_get($code);
if ($scode ne $sscode) {
return $app->handle_error($app->translate(
“Wrong or missing Security Code.”));
}
MT::SCode::scode_delete($code);
MT::SCode::scode_create($code);
#
# Security hack ends
#

8.將迴響相關模版修改
Individual Entry Template
Comment Listing Template
Comment Preview Template
Comment Error Template
這裡是我苦手的地方,不知道要用3.x還是2.x的模版
9.另外使用3.X要注意的是要修改lib/MT/Template/Context.pm,修改內容我不確定,所以請看readme。
以上,希望大家都能夠成功。

在〈Anti-Spam Comments Project始動!〉中有 5 則留言

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料