前一段时间刚看到keso与phpx.com事件,这几天就相继有北辰swearl 反应被人用Trackback骚扰了。我这里虽然大体平静,但也偶然会有几个spammer光顾。看起来,继评论、留言本之后,广大spammer又发现新的战场了。

最容易被Trackback Spam利用的一点是Trackback URL的连续性,phpx的老大就是利用了这一点。大多数blog程序在设计的时候,Trackback ID都是连贯的,举例如下所示:
http://127.0.0.1/test/tb.php?t=1
http://127.0.0.1/test/tb.php?t=2
http://127.0.0.1/test/tb.php?t=3
http://127.0.0.1/test/tb.php?t=4
显然这样的设计,对于自动发送spam的程序来说真是太爽了。

现在的问题就是怎么去改进。改动ID的规则,改连续为随机,这是个解决方法。但是这样的改动不算小。而且,连续性的ID之所以受到欢迎是有原因的,比如管理起来很方便,比如可以利用SQL现成的auto_increment生成等。所以,最好能在不变动ID的情况下防范自动spam。

那就只能给Trackback加上一个“验证码”。在原有的trackback地址之外添加一个参数,并在接受trackback时验证。

我现在的做法是:取日志的ID,再取日志发布时间的Unix时间戳记,两者连接后作md5计算,截取md5字串的开头一部分作为验证码。PHP程序大致如下:
<?php
function tbcertificate ($blogid$pubtime) {
    
$str=substr(md5($blogid.$pubtime), 05);
    return 
$str;
}
?>

trackback的地址变成:
http://127.0.0.1/test/tb.php?t=1&extra=400e6
http://127.0.0.1/test/tb.php?t=2&extra=fa933
http://127.0.0.1/test/tb.php?t=3&extra=349d2
……

如果是防范自动推导Trackback地址并发送spam的程序,那么至此已经可以解决问题了。我想大部分spam都是这样的程序发送的。

当然,有可能魔高一丈。比如说在知道了验证码的算法后,spam程序依然可以从rss等地方提取出时间和ID这两个值来,自动推算出验证码。不过我想暂时地,不会有那么无聊的人士做这样的事情的。而且对策也不是没有。我们可以自设一个密码字符,加入到被md5计算的字符串中去。不过(-_-)spammer实在没辙了还可以直接上你的网站“采集”trackback地址啊。这个怎么解决呢?好吧,如果真有那么一天,我只能用javascript来生成地址了……(至于么......)
Tags: , , ,
飞竹
2006年4月27日星期四 20:00
老大救命啊 天天被人骚扰啦
果子 Email Homepage
2006年4月26日星期三 09:47
那1.7的用戶可以怎麼辦?
很擔心啊~~
因為我也受到騷擾了 sweat
魔界空明 Homepage
2006年4月25日星期二 02:35
我的日志被引用了,为何我无法查看是哪里引用了我的日志?
bob 回复于 2006年5月1日星期一 12:59
和评论显示在一起。
bob Email Homepage
2006年4月23日星期日 19:31
这个星期改了一下trackback部分。重点是增加了Trackback 的评分式过滤与Trackback审核机制。
关于评分式的过滤方法,可以参阅:
Angel的文章
浪漫海儿 Homepage
2006年4月20日星期四 20:47
同时会在1.7的版本里加上防骚扰功能吗。期待Ing。

偶姐的Blog也被骚扰了。同一时间竟然有8条引用。可恶。
bob 回复于 2006年4月21日星期五 10:20
1.7我现在实在没有时间去弄了。final版本已经一拖再拖,实在很无奈。至于新的功能,肯定不会再加。
shaw
2006年4月19日星期三 11:39
希望能在新版本中有改进!
bob 回复于 2006年4月21日星期五 10:06
会改进的。
PcExp.Cn Homepage
2006年4月18日星期二 20:26
期待补丁推出~BOB加油~
taiyuan123
2006年4月18日星期二 11:00
我是老版本的BOBLOG,已经被炸了...
df
2006年4月17日星期一 14:51
这里处理一样会被攻击
randomsolo Homepage
2006年4月15日星期六 09:20
遭不住了,我已经把tb.php删了~
分页: 2/4 第一页 上页 1 2 3 4 下页 最后页


Powered by Bo-Blog 2.1.1 RC1Code detection by Bug.Center.Team
沪ICP备05032643号

© 2008 博睿智 Marshal Design Bo-blog offcial theme