自己搭建过独立 WordPress 博客的都应该体验过这种情形——正当你为博客被大型搜索引擎收录而高兴之时,麻烦也随之而来,垃圾评论铺天盖地,就算开启了 WordPress 自带的 Akismet 反垃圾插件也只是减少了一些数量,无法彻底阻挡。因此 WordPress 官网上各种反垃圾插件也颇受欢迎。总的说来大致分两种——一种是需要用户交互的,比如各类验证码、验证问答等等;另一种是所谓的“自动”反垃圾,不需要用户参与。这里我将给大家推荐一种优秀的非用户参与式反垃圾插件, NoSpamNX 。

我个人观点是验证码是一种十分反人类的存在,尤其是 reCAPTCHA 这类的强验证码,时常令我怀疑自己到底是不是人类(这里有一篇文章收集了各种强大的验证码,有兴趣的可以看看)……问答式的虽然可以十分有趣,但也有一些问题——像是读者的语言和知识水平等。不论是哪种用户交互类验证措施,都会降低用户体验,增加回复的困难性,可能导致用户放弃留言甚至无法留言——某些验证措施依赖 Flash 或是 JS 等实现,若是使用一些手机浏览器可能根本无法显示。

仔细观察这些垃圾评论,可以发现它们大多是由 bot 自动发出的。既然垃圾评论是自动发出,那么自然也有办法可以自动反垃圾。一些聪明人想到了更改评论表单的名字,让 bot 找不到,比如早前的 Yawasp 插件。然而这种暴力的方式不可避免地带来一些兼容性问题,于是该插件的作者就转而通过“增添”而非“修改”来实现原来的目的——在评论表单区域增添若干个随机名称的不可见表单域,若这些域的值被改变了(大部分 bot 都会在所有的域里填上垃圾信息的),就直接舍弃这条评论。这便是标题所说的 NoSpamNX 。

我本以为这样简单的方式应该作用不大,而且垃圾 bot 迟早会改变以应对此类手段。然而出乎意料的是,这个插件工作地异常出色,我已经使用了两年多时间,再配合 Akismet 偶尔过滤掉一些人工或是更“高级”的广告,从来没有一条垃圾评论漏网。看来这些垃圾评论 bot 的作者也是十分懒惰的,并不会去动这个脑筋改进,难怪是 birdbrained 呢。

Since 2010-06-24 NoSpamNX has stopped 11478 birdbrained Spambots (approx. 15 per Day).

最后,贴一下该插件在 WordPress 官网上的地址:http://wordpress.org/extend/plugins/nospamnx/