笔记 by 车东

CCode and TCode: MT的防SPAM插件

老办法改脚本文件名还是要用: 在mt-config.cgi中加上:

CTCode已经调通了,写笔记宣传一下。感谢毕勤的提示,找到了CCode和TCode这个防spam插件。原理很简单:就是将原来的Comment和Trackback的ID后面增加了一个数字(我观察:10位数字应该是文章发表的时间戳基于时间戳生成的数字)用作干扰,以防止Spammer用留言机对于使用MT进行blog发布的系统进行地毯式trackback轰炸(从文章1到文章1000)。

优点: 1 COMMENT和TRACKBACK的spam问题同时解决; 2 不用安装新的PERL模块(使用图形验证就比较麻烦,需要安装很多动态生成模块); 3 blog读者不增加负担,不用输入校验码之类的(但是TRACKBACK变成手工的了,无法自动发现了);

缺点: 改的地方太多,除了部署plugins文件外: 1 每个BLOG一一修改模板单篇归档模板的留言表单; 2 留言页面需要增加一个JS函数:增加单独js文件,或者扩展mt-site.js 3 需要重建所有页面; 4 针对分布式spambot不管用:还是要先将改文件名。

安装以后的确有感到回到刚安装MT时候的安静环境中(但:目前spamlookup插件仍然在使用中)。希望能和spamlookup一样,成为MT的标准插件配置;

以下是具体安装和配置过程:

安装: 将CTCode-3.3.01.tar.gz放到 cgi-bin/mt/ 并解压。

CCcode的配置: 0 (如果直接使用的是MT3.3以上可跳过)如果从MT3.2升级上来的系统可能缺少mt-site.js文件的模板,添加一下; 1 将default_templates下的obfuscator.js附在site_javascript.tmpl后面;

关于TCode机制: TCode防止的其实是基于html header中的ping地址定义: rdf:about=“http://www.chedong.com/blog/archives/001235.html" trackback:ping=“http://www.chedong.com/cgi-bin/mt/mt-tb.cgi/935.your ping is to be moderated, so please dont’t send repeatedly” 所以:在MT对外网blog ping的时候,自动发现的地址就变了。所以如果发现MT自动发现的ping地址不对就需要自己手工改一下。

TCode在安装上插件后,直接生效,不需要修改JS,也需要部署js:感谢路杨的耐心说明。

你还是查看全部原代码定位到TrackLink来看把:)或者用ie来看, 1464314384 其实就是 obfuscator(‘Uj2jlUjlYj’, ‘mcVRTeM4Zzopd3iqFjuwGHKlQ1anEDgb7XOUy8059rLkSNfYW6CBPAvIstx2Jh’, ‘MTTBLINK’, ‘http://www.chedong.com/cgi-bin/mt/mt-tb.cgi/935.', ‘’); 的 HTML输出而已 。

另外,我们直接分析代码吧。你定位到Tcode.pl,看看sub alogblog_category_tb_link的输出 require alogblog::Obfuscator; if($_[1]->{hidden}) { alogblog::Obfuscator::munge(’’, $ts, ‘MTTBLINK’, $path, 1); } else { $path . alogblog::Obfuscator::munge(’’, $ts, ‘MTTBLINK’, $path); }

而alogblog::Obfuscator.pm中 munge 函数的输出就是上面的js. $ts就是干扰码。

PS: Tcode&Ccode的干扰码是从blog的发布日期两次转换迩来生成一串数字,然后把这传数字经过alogblog::Obfuscator::munge加密成一段js,然后再由js函数解秘为那传数字。 可以通过修改,去掉js,但是就失去防止SPAM机器人抓网络分析地址的功能了。