February 01, 2005

MT 防止垃圾的 Trackback 的方法::[Source]


Liang

以前做防止Spam comment垃圾留言的时候做了,长时间没有看都忘记了,朋友问起提醒了我,写在这里:

mt-tb.cgi 是处理 trackback 的程序,这个程序拿到了 trackback 后进行插入数据库处理。

trackback 的数据结构定义在:
lib/MT/TBPing.pm 里面,有如下结构:

my $ping = MT::TBPing->new;
$ping->blog_id($tb->blog_id);
$ping->tb_id($tb->id);
$ping->title('Foo');
$ping->excerpt('This is from a TrackBack ping.');
$ping->source_url('http://www.foo.com/bar');
$ping->save
or die $ping->errstr;


其中 'excerpt'就是文字描述部分,可以进行监查有没有中文的判断,如果没有中文,就当做spam处理,直接中断:

if ($ENV{'REQUEST_METHOD'} eq "POST") {
my $tck = param('excerpt');
die if($tck ne "" && $tck !~ /[\x80-\xff]/);
}

将以上四句话加到 mt-tb.cgi 里面 use strict; 后就应该起作用了。

Posted at February 1, 2005 09:52 PM by Liang at 09:52 PM | Comments (4) | TrackBack(2) | Booso!| Niu.la收藏!


Trackback

You can ping this entry by using http://www.wespoke.com/cgi-bin/mt/mt-tb.cgi/708

邮箱里一下子收到十几封来自这个blog的trackback的通知邮件,吓了我一跳...

Trackbacked from http://www.cathome01.com/asiapan/archives/2005/02/trackback.html with 是trackback被攻击吗? on Asiapan.

Trackbacked from http://www.juega-al-casino.com with Great post! I'm looking forward for more. on .

Comments

第 1 楼:

谢谢卢亮,我最近发现Google Groups实际上是一个非常好的个人留言簿系统,我已经将将大部分MT邮件都转发到@googlegroups.com 上建立的邮件列表中了,实现了一个个人通用的留言簿机制。可以用来跟踪被人给自己BLOG的反馈和自己在别人BLOG上的留言回复。

车东

Posted by: Che Dong at February 2, 2005 12:46 AM from 202.43.217.195

第 2 楼:

不客气, 我也发现 google 的很多东西可以拿来做比较有意思的东西.

Posted by: 6e at February 2, 2005 06:21 PM from 129.119.200.36

第 3 楼:

both didn't work with MT 3.0D

Posted by: kevin at February 20, 2005 02:44 PM from 129.119.200.36

第 4 楼:

MT3.x 怎么办啊?我按照这个办法每次都要报错。

Posted by: DAVID at April 18, 2005 08:10 AM from 218.6.195.82

Post a comment

请注意,为了防止spam,您的留言必需含有中文字符!









Remember personal info?




所有发表