2008年8月23日星期六

关于WordPress的垃圾过滤机制

  根据 Akismet 的统计显示,光 Akismet 自己过滤掉的 Spam 数量就已经高达 2,731,463,593 个,而在所有的评论当中,Spam 所占的比例更是达到了 93% 这个吓人的高度,也就是说平均每 100 篇评论中只有 7 篇是正常回复的,其余 93 篇全是垃圾,治理垃圾评论已经到了刻不容缓的地步!

  继续本文之前大家需要了解的是什么是 Spam ? Spam 被用来称呼互联网上到处散布垃圾广告消息的现象,在本文中 Spam 特指博客中的垃圾评论。

  如何防止 Spam 的泛滥,目前网上流行的方法有几种,他们分别是:内容过滤、IP限制、验证码校验等。目前在 WordPress 流行的几个 Spam 过滤插件则分别代表了不同的过滤机制,下面我就挑几个我所直到的现在使用比较广泛的 Wordpress 插件来分别介绍一下他们处理 Spam 的过程。

  Akismet ( 内容过滤、IP检查 )

  Akismet 其实是 Akismet.com 提供的一种 Spam 过滤方式,它提供了一组 API 来方便所有网站验证用户提交内容的健康性,它也曾是平淡博客当初首选的 Spam 过滤机制,然而种种原因导致平淡最终放弃这一选择,这点下文会提到,而本条中的 Akismet 特指 WordPress 自带的 Spam 过滤插件。

  使用 WordPress 的恐怕都不会对 Akismet 陌生,而我认为 WordPress 会把它当作默认的 Spam 过滤插件并不是因为它的技术有多么高深,而是因为它提出的 Idea 的优秀。下面就是如果开启了 Akismet 插件,一个用户到博客发表评论后所要经过的流程:

用户:发表评论。
博客:将 用户 发表的评论按照 API 规范送往 Akismet 检查是否 Spam。
Akismet:检查 博客 送过来的评论,并将检查结果告知 博客。
博客:根据 Akismet 检查的结果判断是否 Spam 后再进一步处理。

  经过了 Akismet 的处理我们可以非常容易的处理一些群发 Spam 和已被识别的 Spam ,其中你需要做的仅仅是发用户发表的数据让 Akismet 检查一下而已,然后根据 Akismet 的建议做你自己认为适当的安排。但根据这个流程我们可以发现,如果这样做的话,我们就会非常依赖 Akismet 的稳定性,一旦你的博客与 Akismet 服务器之间通讯不畅通的话,就无法对 Spam 进行过滤了。不幸的是,因为功夫网的关系,国内与 Akismet 服务器之间的通讯时断时续,我们也就无法正常使用 Akismet 来过滤 Spam 了,所以目前如果国内博客继续使用 Akismet 的话将不再会有很大的效用,这也正是平淡博客放弃它的原因。

  Some Chinese Please ( 内容过滤 )

  这个插件看名字就应该知道它的作用了,不错,它主要防范的是评论内容不包含中文的回复,据称(不知道据谁称的)网上的 Spam 中,全英文的占了 90%,所以如果你的博客只是面向中文用户开放的话,这个插件也会是个不错的选择。不过这里我要提醒一点的是,这个插件其实非常简单,它只是简单的检查用户的评论内容 ASCII 码而已,它并不检查评论内容的危险性,如果该内容包含 “河蟹” 内容,它将无能为力!

  Custom Anti-Spam (验证码校验)

  这也是一个非常简单根据验证码校验的过滤 Spam 插件,它的处理过程是根据博主预先定义的单词来校验用户输入的验证码的正确性,其实如果光靠这个插件除了防范最简单的那类 Spam 攻击,什么作用都没有,稍微会点编程的人都能轻松找到破解它的办法,不过由于本文并不是教授大家干这种缺德的事,所以这里只是告诉大家它的安全性不高而已,具体如何破解它就请恕平淡藏拙了。因此最后是否采用这个插件还要依靠大家自己的选择,当然如果你是要把它再结合别的 Spam 插件来一起使用的话,也未尝不可!

  OK,文章到这里也该差不多结尾了,因为平淡只使用了 WordPress 几天,如果我有没有提到而你又觉得非常有必要推荐大家使用的插件,欢迎在此留言,平淡代大家对你表示感激。另外如果大家还希望了解如何自行增加 WordPerss 关键字 Spam 过滤或者上面某个插件更多的讯息,也可以在文后留言,平淡会尽量解答大家的疑惑。

没有评论: