CCode and TCode -- 阻止垃圾评论/回复
作者:Hily 原始链接:http://hily.me/blog/2005/09/ccode-tcode-spam/
版权声明:可以转载,转载时务必以超链接形式标明文章原始出处和作者信息及版权声明
在《垃圾评论终结者--SCode》中介绍了利用SCode验证码有效阻止垃圾评论的方法,本文将介绍在MT3.2中另一种阻止垃圾评论/回复的插件CCode and TCode。
CCode and TCode由两部分组成:CCode(Comment Code,用于阻止垃圾评论)、TCode(TrackBack Code,用于阻止垃圾回复)。MT3.2自带的anti-spam系统是在comment/trackback提交到数据库后再进行验证处理的,但是当有太多垃圾信息出现时,我们还需要对这些垃圾信息进行手工删除,略显麻烦。而CCode and TCode在信息提交时就进行验证,通过JavaScript代码添加CCode(隐藏的Comment Code Input框)或追加TCode代码到原来的trackback URL后面,使得显示的代码更不容易被垃圾制造者获取。
安装:
下载:CCode and TCode。下载完毕后,将压缩包中plugins目录下的文件解压至MT3.2的插件目录/plugins下,如下:
(mt home)/plugins/BigPAPI.pl
(mt home)/plugins/alogblog/CCode.pl
(mt home)/plugins/alogblog/TCode.pl
(mt home)/plugins/alogblog/lib/alogblogObfuscator.pm
接着将压缩包中default_templates/obfuscator.js的内容添加到mt-site.js脚本模板中。
标签使用:
1. CCode
将标签<$MTEntryCCode$>插入日志单篇汇整模板(Individual Entry Archive)的评论表单的<form>标签中,如下:
<input type="hidden" name="entry_id" value="<$MTEntryID$>" />
<$MTEntryCCode$>
然后重建单篇汇整文档,查看重建后的页面源码,可以看到在相应位置出现以下代码:
<script type="text/javascript">obfuscator('AJibibLLji', 'D2SLoKjemqyA1ExhlXO8PQbsCgMBnJrHFVcTZ7IWUNpuzfdYk9R5G4t30a6vwi', 'hidden_input', '', '');</script>
这段JavaScript代码的作用是生成一个隐藏的验证码框,框内默认填入了系统产生的随机验证码,在提交评论的时候会对验证码进行验证。
如果是评论机器产生的评论,将不包含这个验证码,就不会提交成功,因此只有在该页面中提交了评论,才能发表成功。
2. TCode
TCode不要求你对模板进行任何修改,因为它通过BigPAPI修改了MT默认的几个标签,<MTEntryTrackbackID>, <MTEntryTrackbackLink>和 <MTEntryTrackbackData>,你只需要重建单篇汇整文档(Individual Entry Archive)即可。
Spam工具是通过遍历猜测TrackBack地址攻击的,如下所示:
# i是trackback编号
loop ( i = from 500 to 1 ) {
result = send_ping(tb base URL + i );
if(result is OK) {
bombing to that URL with many pings
}
}
重建后将会在原先显示的TrackBack地址后产生一串较长的数字,这样Spam工具就不能用遍历的方法进行攻击了。
CCode和TCode都利用了obfuscator对产生的代码进行加密隐藏,使得Spam工具不容易解析代码。想要获取代码,就必须解析出代码,这是在理论上是不可能的。如果要解析,还必须访问一个页面获取JavaScript加密后的代码,然后进行解析,最后还只能发送垃圾信息到那个垃圾页面中。如果要发送垃圾信息到100个不同的页面,还必须对每个页面都进行获取和解析,对他们来说,这些就显得太烦琐了。
Reference:
CCode and TCode for blocking comment/trackback spam for MT 3.2 http://alogblog.com/movabletype/plugins/ccode_and_tcode_for_blocking_commenttrackback_spam_for_mt_32/
Six Apart ProNet - Plugin Directory
http://www.sixapart.com/pronet/plugins/
-- EOF --

