我实在忍无可忍了,每天几十条垃圾评论让原本充满期待的评论审核变得枯燥无聊,今天就来做个了断!
WordPress自带评论审核功能,可以设定屏蔽关键词,审核IP或邮件地址。我采用的是比较严格的策略:要求来访者至少提交过一条已经通过审核的评论,他/她的留言才会直接显示出来。这样,垃圾评论几乎不可能在前台出现,即使长时间不登陆后台管理,也不会影响到访客的阅读体验;但是,对于管理者来说,问题仍然很严重——要在堆积如山的审核队列中挑出真正的交流信息,无疑需要巨大的耐心,但是如果要天天如此呢?这时,一个准确有效的过滤规则就显得十分必要了。我根据最近一周所收到的垃圾评论确定评论黑名单中的关键词列表如下:
ambien (美国最受欢迎的处方安眠药,平均年销售额20亿美元)
carisoprodol (肌安宁,安眠药)
celexa (西酞普兰,抗抑郁药)
cialis (用于治疗勃起功能障碍,他达那非tadalafil的商品名)
diazepam (安定,安眠药)
hydrocodone (氢可酮,用于麻醉、镇痛,可成瘾)
levitra (艾力达,盐酸伐地那非片,属伟哥家族)
paxil (帕罗西汀,抗抑郁症,可成瘾)
phentermine (芬特明,减肥药)
tamiflu (达菲,感冒药,据说可减轻禽流感症状)
tramadol (曲马多,戒毒者解瘾替代品,但也被用作毒品)
viagra (伟哥,不用多说)
……
都是网上药店的广告,渡虎谷曾经介绍过一篇这方面的统计报告,我这里的情况与之基本相同。不过这类广告倒是特征明显,这些专有名词使用频率很低,通常不会在文章或者评论中出现,即使真要提到,也可以用中文替代,拿来做屏蔽关键词就可以有效地避免误判。不过评论机器人也没这么低级,有的会自动更换链接地址和关键词,有些能够利用代理自动更换IP,我的关键词名单是有限的,而用来赚钱的新药是却层出不穷的,要想一劳永逸,就不得不动用WP强大的插件了!
WP最常用的垃圾过滤插件是Aksimet和Spam Karma 2,前者是官方插件,使用相当简单,不需要进行任何设置,但要在WP官方网站注册以获得WordPress.com API Key来启用。它会自动将评论与官方数据库中的Spam特征进行比较,因此误判率相当低(这也意味着会有漏判,但还是可以接受);后者则完全基于本机上定义的过滤规则,功能非常强大,使用也相应复杂一些,但的确是目前最有效的过滤工具,在Yskin那里有详细介绍。而其他一些插件如Bad Behavior,Raven’s Antispam据说会有一定的误判机率,也没有突出的特点,我就没有尝试了。至于在论坛上广泛采用的动态验证码方法也有对应的WP插件(如图片验证的WP-ImgCode,简单提问的Do you pass match),但这会使发表评论变得很麻烦,“己所不欲,勿施于人”;
有人还尝试过另一个思路,由于垃圾评论是用脚本批量调用各站点的评论发表页面(通常为 wp-comment-posts.php)来进行攻击,便可以通过修改此页面的名称来避免垃圾评论自动提交,甚至还有插件(Comments Post Rewriter)可以不断自动修改提交地址。但机器人似乎已经进化了,因为我用这招无效,又不想动用庞大的SK2,最后还是请崔博士开通了CPanel的IP Deny Manager模块直接封禁IP了事。
垃圾评论是博客的顽疾,只要作者试图与来访者交互,便有程序反演检测过程加以利用,就好像住家总会从门缝收到广告,即使密封得很好,也可能被插在把手里,甚至贴在窗户上……防不胜防。张博就是因此关闭了评论功能,放弃了最直接的交流方式。
话说回来,资金雄厚的大公司可以让自己的海报占据闹市中心、报纸头条;Google,百度也能让各大论坛网志心甘情愿的将广告摆在显眼的位置;而薄利多销的作坊主们自然也可以想办法让自己的小广告遍布街头巷尾。“州官放火,百姓点灯”,垃圾评论也因此不治了吧……