浏览模式: 标准 | 列表 Tag: trackback

重新开放Trackback功能

今天抽时间改写了一下trackback功能,并重新开放。

各位向我开炮。测试一下新的Trackback功能是否正常啊。。呵呵。。

Tags: trackback

如果Trackback只有一天有效

如果朋友的文章写了有几天了。我才看到。想发个trackback过去,怎么办呢?发不了?

我看到很多BLOG都是1天Trackback就失效。那还开这个功能做什么啊??

Tags: 垃圾, spam, trackback

防垃圾实战!哈哈

我公开了SaBlog-X的Trackbak防范spam机制以后,经过我再次改良,再次又证明此套方案的优秀性!哈哈。炫耀一下。

只收了一条。其他全部拦截!不管IP是不是一样。用代理还是分布式都全部拿下。哈哈。

图片附件:
tbspam.gif

大小: 44.12 K
尺寸: 500 x 463
浏览: 1055 次
点击打开新窗口浏览全图

Tags: trackback, spam

Sablog-X采用的Trackback Spam防范机制

我这个模板是适合800分辨率的。所以看代码可能来这里看比较直观一点。
http://www.4ngel.net/blog/angel/archives/?article-118.html

目前来说,防范trackback垃圾已经迫在眉睫,因为到现在为止。很多BLOG只做了一些评论的过滤,要防范评论垃圾信息很简单,但是防范Trackback spam却不能象评论那样,因为Trackback来自其他的BLOG,所以很多内容都是不可以确定的,比如按照其他链接出现次数,和垃圾词汇进行过滤,是不可能的,不然我收集一些网站,或者是骂点人。都有可能不能通过别人的BLOG检查。所以我根据Trackback Spam的特征,想出了一套比较可行的办法。采用分数制度,给接收来的Trackback数据,进行评分操作。最后决定数据处理办法。懒得组织语言说了。贴出我和BO-BLOG作者BOB的部分聊天记录。

用户:所有分组(QQ好友)

==================================================
消息组:我的好友(92)
==================================================
消息类型:聊天记录
==================================================

--------------------------------------------------
消息对象:Bob(22112197)
--------------------------------------------------
2006-04-10 15:22:51 Small!A
在?
 
2006-04-10 15:23:17 Small!A
我想到一个比较有意思的防范track的办法。讨论一下。  

2006-04-10 20:22:24 Bob
什么好主意啊?

2006-04-10 20:23:57 Bob
说来听听呀

2006-04-10 20:24:45 Small!A
我不知道。只是有一个打分数的想法。

2006-04-10 20:24:52 Small!A
不知道有用不。

2006-04-10 20:24:29 Bob
嗯,打分法

2006-04-10 20:24:41 Bob
不过怎么操作呢

2006-04-10 20:25:37 Bob
好像很高深呀...


2006-04-10 20:28:51 Small!A
定义一个初始分数。
我是这样来的。
$point = 0;
发送完整的trackback里面不是有url吗?
直接读取这个url的源代码进行分析。读取失败。减1分。
如果可以在原代码里找到提交url。加一分。
找到标题加一分,找到摘要加一分,就是通过对比。
综合起来的分数。可能是负的,可能是正的。

如果是负的。就表示是垃圾。

2006-04-10 20:29:09 Small!A
具体我在实验。不知道有效果不。。

2006-04-10 20:29:15 Bob
不错的思路3481D2

2006-04-10 20:29:34 Bob
关键词可以考虑进去否?

2006-04-10 20:29:46 Bob
我今天在地铁上冒出来一个想法

2006-04-10 20:31:10 Small!A
还有可以设置过滤强度。比如计算结果是0。则表示基本正常。大于零,正常。如果-1。我表示为弱。设置为隐藏。到后台审核。如果得到-2甚至更少的分数。就表示在我设置的强

度过滤范围内。就直接不予处理。

2006-04-10 20:32:23 Small!A
我想过了。关键词和HTTP出现次数。都不行。不同于评论。不能用评论的办法。我发的文章。刚巧你禁止内容内的某个词。或者我是推荐一些好网站。超过你设置的HTTP次数。那

不是没办法PING你?

2006-04-10 20:32:20 Bob
我今天想到一个。。。可以建立一个trackback回访制度。

2006-04-10 20:32:29 Bob
让我整理一下思路。。。

2006-04-10 20:33:11 Small!A
好的。等你组织语言。呵呵。

2006-04-10 20:35:04 Bob
比如,A发送给B一个trackback,B在检查之后发现A是来自从来没有发送过trackback给他的一个地址。于是,A的TB暂时不显示。B的管理员通过A的tb之后,B自动向A发送一个确认

密码串。今后A再次向B发送TB时,自动附上这个密码串。B验证这个密码的正确性,再检查A是否在曾经允许过的列表内。两者都正确后即刻显示。。。

2006-04-10 20:35:39 Bob
[表情]有点bt的想法

2006-04-10 20:37:59 Small!A
这个相当于几次握手了?我感觉不是很舒服。是我不会再给你发了。
我的看法是在我们这边单方面处理。如果双方都要处理的话。你没办法确定对方的BLOG系统跟你是否统一标准。涉及到处理我估计会麻烦不少。。。

2006-04-10 20:38:04 Bob
嗯,麻烦就在于要在现有的标准上

2006-04-10 20:38:21 Bob
而trackback的标准本来就不考虑spam

2006-04-10 20:38:50 Bob
分数这个可以试试看效果的。。。

2006-04-10 20:39:03 Bob
有没有可能建立一套分数的评分规范。。。

2006-04-10 20:39:47 Small!A
所以我想先试试我的想法是否可行。

2006-04-10 20:39:23 Bob
尽量为越来越多的程序采用

2006-04-10 20:40:16 Small!A
不知道。所以我如果可以有效防范。我们再谈谈如何统一吧。。

2006-04-10 20:40:22 Bob
有没有测试的工具C7B305

2006-04-10 20:40:36 Bob
俺来发几个垃圾信息轰炸一下

2006-04-10 20:41:24 Small!A
如果能找到测试工具倒不错。我晚上先手工测试一下。

2006-04-10 21:14:19 Small!A
我给你段代码。你==

2006-04-10 21:13:58 Bob
hao〕

2006-04-10 21:17:00 Small!A
放你的WEB上。给我地址。

2006-04-10 21:17:13 Small!A
然后我发送TRACK看看。分数是多少。

2006-04-10 21:27:12 Small!A
1分。

2006-04-10 21:26:42 Bob
正常了

2006-04-10 21:27:27 Small!A
恩。我是这样想的。如果是软件发送。。

2006-04-10 21:27:35 Small!A
我组织一下语言。。==

2006-04-10 21:27:37 Small!A
哈哈

2006-04-10 21:27:12 Bob
嘿嘿,我把发送时候的标题改掉

2006-04-10 21:27:18 Bob
让他找不到

2006-04-10 21:28:18 Bob
$point:0 [:D]

2006-04-10 21:31:26 Small!A
如果他是软件发送。那么他就只有一个地址
他要发送的话。必须提供
$articleid
$title
$excerpt
$url
$blog_name

这5个必须的。对吧?

我们的tb.php文件。就去抓取他的url的内容。看看内容里是不是包含了他提交的title等这些数据。如果包含。则说明他可能是正常发送。

也就是说。他要正常发送。就要提供正确的数据。只要正确的数据。才加分。否则减分。分数过低。直接CUT掉!

2006-04-10 21:31:21 Bob
我懂了

2006-04-10 21:32:08 Small!A
即使他伪造,也要伪造出正确并且实际存在的。能访问到的。

2006-04-10 21:31:36 Bob
他为了伪造发送,必须提供一个可以访问

2006-04-10 21:31:38 Bob

2006-04-10 21:32:15 Small!A
恩。

2006-04-10 21:32:22 Small!A
我的思路就是这样。你有没有更好的办法?

2006-04-10 21:32:01 Bob
暂时没有

2006-04-10 21:32:39 Small!A
当然我想仅仅这些判断。估计不够。还多想一点。

2006-04-10 21:32:44 Small!A
你认为这个办法可行不?

2006-04-10 21:32:12 Bob
不过如果他的地址的确能访问呢?

2006-04-10 21:32:25 Bob
这好像就是他发spam的目的啊

2006-04-10 21:33:09 Bob
不过,效果肯定会有的

2006-04-10 21:34:20 Small!A
所以我们在后台设置一个防范强度。
[图片]
分数在某个范围属于强?某个范围输入弱。可以根据判断是隐藏该引用。还是直接不处理该引用。

2006-04-10 21:35:37 Bob
good

2006-04-10 21:36:13 Small!A
可以根据范围判断是隐藏该引用。还是直接不处理该引用。 分数特别低或者最低。就可以不处理了。这个范围就是防范等级咯。

2006-04-10 21:36:08 Bob
改天我要把trackback部分重写一下。现在我的tb没有隐藏这个熟悉

2006-04-10 21:36:12 Bob
属性

2006-04-10 21:37:00 Small!A
我的也没有。要加字段了。呵呵。

2006-04-10 21:36:41 Bob
我的倒不必

2006-04-10 21:36:55 Bob
本来就和评论共用了一个表

2006-04-10 21:37:29 Small!A
你通过什么判断属性?

2006-04-10 21:37:56 Small!A
哦。明白。加个type判断是什么对吧?

2006-04-10 21:37:31 Bob
0= 公开评论 1=隐藏评论 2=垃圾嫌疑的公开评论 3=垃圾嫌疑隐藏评论 4=tb

2006-04-10 21:37:44 Bob
看来要用到 5

相信大家看了应该都知道是怎么防御这个Trackback Spam了。具体代码是怎么实现的呢?下面就是目前sablog-x所使用的代码:

// 检查Spam

// 定义发送来的此条Trackback初始分数

$point 0;

$options['tb_spam_level'] = in_array($options['tb_spam_level'], array('strong''weak''never')) ? $options['tb_spam_level'] : 'weak';

if (
$options['audit_trackback']) {

     
//如果人工审核

     
$visible '0';

} elseif (
$options['tb_spam_level'] != 'never') {

     
$source_content '';

     if (!empty(
$url)) {

          
$source_content fopen_url($url);

          
$this_server str_replace(array('www.''http://'), ''$_SERVER['HTTP_HOST']);

          
//获取接受来的url原代码和本服务器的hostname

     
}

     if (empty(
$source_content)) {

          
//没有获得原代码就-1分

          
$point -= 1;

     } else {

          if (
strpos(strtolower($source_content), strtolower($this_server)) !== FALSE) {

               
//对比链接,如果原代码中包含本站的hostname就+1分,这个未必成立

               
$point += 1;

          }

          if (
strpos(strtolower($source_content), strtolower($title)) !== FALSE) {

               
//对比标题,如果原代码中包含发送来的title就+1分,这个基本可以成立

               
$point += 1;

          }

          if (
strpos(strtolower($source_content), strtolower($excerpt)) !== FALSE) {

               
//对比内容,如果原代码中包含发送来的excerpt就+1分,这个由于标签或者其他原因,未必成立

               
$point += 1;

          }

     }

     
$interval = ($options['tb_spam_level'] == 'strong') ? '30' '60';

     
//根据防范强度设置时间间隔,强的话在30内发现有同一IP发送。弱的话就是60秒内发现有同一IP发送.

     
$query $DB->query("SELECT trackbackid FROM ".$db_prefix."trackbacks WHERE ipaddress='".getip()."' AND dateline+".$interval.">='".time()."'");

     
$tatol $DB->num_rows($query);

     
//在单位时间内发送的次数

     
if ($tatol 0) {

          
//如果发现在单位时间内同一IP发送次数大于0就扣一分,人工有这么快发送trackback的吗?

          
$point -= 1;

     }



     
$query $DB->query("SELECT trackbackid FROM ".$db_prefix."trackbacks WHERE REPLACE(LCASE(url),'www.','')='".str_replace('www.','',strtolower($url))."'");

     
$tatol $DB->num_rows($query);

     
//对比数据库中的url和接收来的

     
if ($tatol 0) {

          
//如果发现有相同,扣一分。

          
$point -= 1;

     }



     if (
$options['tb_spam_level'] == 'strong') {

          
//高强度防范

          
$query $DB->query("SELECT title,ipaddress,articleid FROM ".$db_prefix."trackbacks WHERE ipaddress='".getip()."' OR articleid='".$articleid."'");

          
//搜索数据库内发送此trackback来本站的IP和文章ID

          
while ($trackback $DB->fetch_array($query)) {

               if (
$trackback['title'] == $title && $trackback['ipaddress'] == getip()) {

                    
//如果数据库内的title和接收来的title一样,IP也一样,视为重复发送。就减1分。

                    
$point -= 1;

               }

               if (
$trackback['ipaddress'] == getip() && $trackback['articleid'] == $articleid) {

                    
//如果数据库内的articleid和接收来的articleid一样,IP也一样,视为重复发送。就减1分。

                    
$point -= 1;

               }

          }

          
// 防范强:最终分数少于1分就CUT!

          
$visible = (($point 1) ? '0' '1');

     } else {

          
// 防范弱:最终分数少于0分才CUT!

          
$visible = (($point 0) ? '0' '1');

     }

} else {

     
$visible '1';

}

// 检查Spam完毕

上次和O-BLOG作者风色提起过,可是不经常看他上QQ,目前通过大量测试。。已经证实可以起到防御的作用。希望有各位看了我的文章,可以提出自己的看法,互相交流。继续共同提高。呵呵。

要拍砖的,尽管来,没有刺激,哪有膨胀,没有压力,哪有动力,没有反馈,哪有更好?


18日中午想到的,还可以多加一条判断就是拿接收到的$url参数和数据库内的对比,如果存在了,再扣一分!

Tags: sablog-x, trackback, spam

Trackback测试

启用了独特的trackback Spam防范机制。一共经过5步处理,如果是高强度防范,则经过6步处理。每一步都是决定信息去处的关键。感谢国际村sadly帮忙测试,他用他的程序给我发送Trackback Spam,系统成功拦截。并且有记录。

欢迎大家继续测试。如果是正常从各位的BLOG发送过来的。应该是接收没有什么问题的。后台可以设置防范等级。欢迎发送各种Trackback spam来这篇文章。其他的文章希望各位大哥大姐手下留情。

根据后台的记录,发现 59.42.188.xx 的朋友在11日晚上9:20-9:30这段时间发送了10多条Trackback过来。成功拦截了10多条,有2条系统认为是正常的。特别感谢这位朋友的热心测试。

感谢小麟哥 - Fighting!的手工测试!如果不介意,请再手工发送几十条过来看看。

12日凌晨4点把所有垃圾或者测试的Trackback清除,最新加入了人工发送的判断。各位如果愿意花5分钟,继续疯狂轰炸这篇文章。让我好不断改善。杜绝各种垃圾信息!谢谢各位啦!!!

再次感谢221.235.207.xx,(59.35.10.xx,59.35.49.xx,59.35.36.xx),221.12.110.xx 这3位朋友的热心测试。后台记录了共30多条来自这几个IP发送的测试数据。

图片附件:
tbspam.gif

大小: 3.16 K
尺寸: 398 x 107
浏览: 210 次
点击打开新窗口浏览全图

Tags: trackback, 测试

Total:712Next ›