暮光博客此前一直在使用的是 Akismet 这款高效的 SPAM 拦截插件,这也就是博客为什么发布评论速度会慢一点的原因,因为系统需要将读者的评论先发送到 Akismet 的国外服务器上做校验。
每天到我博客发布垃圾评论的 SPAM 机器人特别多(见图1),但是大部分都会被 Akismet 成功拦截。有时候我会在垃圾箱里翻到几条「看似正常」的评论,但点进其个人主页,基本都是推广营销类的网站,被拦截也就不奇怪了。
但每天总会有那么几条漏网之鱼,是很明显的 SPAM,不知道为何 Akismet 没有检测出来。由于博客设置了评论邮件提醒,垃圾评论同时变成了垃圾邮件(见图2),对我产生了不少困扰。
今天实在受不了,写个小插件额外拦截了一下 Akismet 的漏网之鱼,提取了三个特征:
- IP归属地非中国
- 评论作者名称不包含中文
- 评论内容不包含中文
当评论同时满足上述条件时,返回错误信息(见图3)。
这样,与 Akismet 相辅相成,应该就能拦截掉 99% 的 SPAM 了。但存在误杀的可能性,我在返回的错误信息中已经做了提示,相信有心评论的读者也能够斟酌修改。