嘟嘟老窝

上帝给了我一双黑色的眼睛,我却用它来翻白眼......

导航

« anti下安替,请不要拿那些孩子们当武器 芙蓉姐姐成名佳句 »

对付TrackBack spam的三步方法

随着web services使用范围的越来越广,这种类似于trackback的远程xml-rpc调用技术将越来越普及,伴随而来的是大量的spam。blog的trackback spam不同于comment spam,comment spam是个技术单一,效率比较低的spam机制,很多blog系统在接受comment表单提交时会判断页面来源,如果页面地址不是合法url将会拒绝,trackback不同,trackback可以基于任何一台联网的机器向全世界任何的blog系统发送cgi命令,所以对付trackback spam的方式不同于comment spam,下面我将简单讲述一下我认为可行的一套anti-spam方法。

脆弱的暴露TrackBack Url太危险了!第一步,必须隐藏URL

拿donews的blog来说,它的默认日志页面是如下

日志页面URL:http://www.donews.net/$USERNAME/archive/$YYYY/$MM/$DD/$ArticleID.aspx
对应的TrackBack URL:http://www.donews.net/$USERNAME/services/trackbacks/$ArticleID.aspx
题外话一下,donews的blog是基于开源的.Text系统,说真的,这套系统现在越看越差劲了,就拿这个trackback url接口来说,只要变换$ArticleID和$USERNAME就可以做到向不同的日志页面发送TB命令了。

对这个TB url进行技术处理实现隐藏就能达到最基本的anit-spam效果。TB URL不应该拿对应的文章ID号作接口,可以在文章生成时随机生成TrackBackID,而且不推荐用纯数字,纯数字容易循环,改成A-Za-z0-9组合的字符串码,你用MD5加密ID后的字符串就完全可以实现这个功能。至于随机的tb url和日志页面的对应问题就更好解决了,在数据库中建立一张字典表,每个文章ID对应一条url就可以了。

利用强大的人为过滤方式。第二步,人肉过滤和人肉字典

每个用户在收到spam的trackback后可能会去删除,在删除操作时系统自动记录这条spam对应的ip地址,然后对spamIP进行数量上的分级,比如有10个用户(或者10次)提交了一个IP地址的spam,那么就认为这个ip是纯粹的危害性大的spam来源,直接整站屏蔽这条IP地址,不够10条的那就只在提交此IP的用户范围内进行过滤即可。这种方式估计是最有人情味和误判率最低的人肉过滤。想要更高级的,那就全世界范围内建立一个spam字典库吧,通过信任登记的用户可以向该库提交spam数据,全球任何用户都可以从该库提出spam数据以供己用。

只让真正的用户才能得到url链接。第三步,日志页面内的TrackBack URL隐藏

看了第一条的你肯定会提出那spam系统难道不会从日志正文页面源码中提取url吗?的确是这样,高级的spam可以做到下载日志页面得到html代码然后通过字符串查找轻松获取url链接,因为你的trackback肯定要提供给正常用户的。对于这种问题的解决其实很苛刻,实在想实现我想也是有办法的。利用验证码的方法在页面上以图片方式提供给读者url的地址,或者干脆不提供,放一个按钮,让用户点击该按钮,然后通过xmlhttprequest不刷新当前页面从服务器上取到url链接返回给客户端,想做更好完全可以像我这样——。通过这种方式,只有真正的用户通过鼠标点击按钮后才能得到url地址。现在很多blog就采用这种机制,给你一个链接,提示你“单击查看引用地址”,单击后另开一个窗口显示trackback url,他们是通过页面来源地址的判断,来决定是否显示trackback url的。

至于韩磊所说的目前donews的spam烦恼我认为通过分隔服务器的方法最简单了,把接收trackback请求的操作从现有的服务器中分离出来,让tb指令全部在这台专有的服务器上操作,有效地请求排队加上重复命令过滤将很好的控制服务器的解析资源,同时向外公布的web服务器又不会因为过多的cgi请求而导致服务器资源严重占用。对于virushuo提出的对付trackback spam的方案我觉得更多的是防范恶意攻击,他把tb请求想象成类似于DDos的洪水攻击,说实话,我认为他的那套方案也不是和理想,众所周知,TCP/IP的通讯方式中有3次握手,DDos或者SYN攻击都是利用这3次握手的操作来达到攻击目的的,在目前基于TCP/IP的互联网上,想要真正解决这样的洪水攻击还没有一个好的解决方案。

  • 该日志的引用地址:
  • http://www.duduwolf.com/cmd.asp?act=tb&id=164
  • Trackback未必会死去(引用)
  • 嘟嘟老窝
  • <p>WebLeOn说<a href="http://webleon.net/2005/09/trackback.html">Trackback正在死去</a>,我觉得这倒也未必。Blog之间的trackback最大的障碍也许就是标准的不统一,导致经常出现trackback失败,老失败就会失去用的信心了,久而久之也许就忘了还有个TB功能可以使用。trackback还有的缺点就是<a href="http://www.dudu...
  • 2005-9-28 10:41:32
  • 跟Trackback Spam死磕(引用)
  • 葡萄树下不乘凉
  • 关于Trackback Spam, 博客园的duduwolf提到了3个办法 。在目前没有办法改变trackback协议的基础上,窃以为这三个办法是切实而且可行的。虽然我的blog目前还不会因为树大招风,引来trackbakc spam。不过贯彻八荣八耻,要以发现问题立即纠正为荣,逃避问题为耻,这样才能建设我们环保的和谐BLOG。 抽了这个下午,在我的z-blog上死磕trackback spam。 1、首先是隐藏trackback的地址。z-blog原来的trackback是以链接方式出现的
  • 2006-4-7 17:51:16
  • 1.韩磊 | (home)
  • 受教。关于第一点和第二点,非常同意。

    目前我的解决方法,正是把TrackBack服务器独立出来。在这个过程中,发现还有PingBack的漏洞没堵,不过现在暂时还没出现PingBack Spam。
  • 2005-6-17 0:30:16
  • 2.virushuo | (home)
  • 我确实是从防范DDOS的角度来考虑这个问题的。事实上,对付恶意攻击也好,对付spam也好,可以说根本上没有解决之道,只有缓解之道。作恶总是比行善容易一点。

    我们唯一能做的,就是增大为恶者的成本。我的方案中,关键是知识库系统,正是这个系统才能让为恶的成本变得无限大。但,这个知识库同样会带来不公平和垄断现象,这也是令人担心的。
  • 2005-6-17 1:59:40
  • 3.duduwolf | (home)
  • virushuo 说的对,道和魔始终如影随行,道高一尺魔高一丈,也许道魔之间的较劲也是推动发展的动力吧
  • 2005-6-17 8:09:21
  • 4.goodx | (home)
  • 我还在郁闷我没TrackBack呢:(
  • 2005-12-28 21:55:45
  • 5.fgh | (home)
  • The best touch screen company for china
    [url=http://www.ggitech.com.cn]touch screen[/url]
    [url=http://www.ggitech.com.cn]触摸屏[/url]
  • 2006-4-11 15:37:51
  • 8.太阳能 | (home)
  • 中国太阳能网供[url=http://solarnet.net.cn]太阳能,太阳能电池板,太阳能热水器[/url]太阳能新闻,政策法规和政府最新公告,<br>
  • 2008-4-23 8:12:14
  • 10.太阳能热水器知识 | (home)
  • 文章还可以!
    [url=http://solarnet.net.cn]中国太阳能网供太阳能 太阳能电池板 太阳能热水器[/url]选购知识 太阳能新闻,政策法规 <br>
  • 2008-7-5 12:17:41

反向链接列表

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

<< 2008·7 >>

Sun

Mon

Tue

Wen

Thu

Fri

Sat

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

Search

Powered By Z-Blog 1.4 SP1 Build 50824 - modify by duduwolf

Copyright 1999-2005 duduwolf.com Some Rights Reserved.