昨天又遭受了一次online poker的垃圾trackback袭击,8月2日经历过一次,那次Spam + Trackback 模块有效的阻止了垃圾trackback,而昨天, spam 和 trackback 去没有阻挡住瞬间上百条的垃圾trackback。因为Spam模块是Drupal核心模块设计的,所以它对组织垃圾留言和Blog内容非常有效,对于trackback,却一直都不支持。但是trackback的垃圾越来越严重,于是有用户更改了trackback,用一种比较笨拙的方式暂时防止了spam的袭击,后来trackback也作了更新,添加了对spam模块的支持。从逻辑上,这是一种颠倒,应该spam模块支持trackback模块才对,而不是颠倒过来,所以这种协作中存在着一个漏洞,而狡猾的垃圾trackback很快就知道该如何钻入这个漏洞,所以就出现了昨天的海量垃圾。
于是查阅解决方式。突然发现Spam模块已经被重新写过,最新的版本是今天才发布的2.0.10,但是这个版本并不在Drupal的总站上,因为Drupal总站发布的模块必须是基于GPL协议的,而新的Spam模块则是基于BSD协议的,不过我们可以在作者的网站找到这个模块。他提供了针对旧模块的数据表的升级脚本,但是我试了一下似乎有bug,升级数据库后,评论总是被全部或是部分的删除,幸好我在升级前备份了数据库,没有损失数据。所以索性彻底删除了旧的Spam模块和相关的数据表,重新安装新的Spam模块,反正原本也没有多少东西在旧的数据表里面。
新的Spam模块功能比先前强大了不少,它甚至可以扫描已有的内容,剔除杂糅其内的垃圾内容。但是美中不足的是它不能直接扫描已有的trackback,为了避免越俎代庖,不过这个版本的spam模块加强了对trackback模块的支持,在先前的几个版本中,还加入了对trackback模块的patch,以使两者能够更好的协作。8月22日,Trackback模块的作者将这个patch添加入他的模块中,所以现在只需要下在cvs版的trackback就可以了,而原先的patch文件也已经从Spam模块的正式下载文江中删除。
呵呵,希望这次可以多抵御一阵子spam的骚扰,道与魔不断的较量着技术手段,我等看热闹的就只好在被魔击中只好快些去道那里领取解药,呵呵,无奈,无奈:)