Bo-blog反垃圾评论 – Akismet

我朋友毛样天同志用的boblog,表示垃圾评论很多,审核压力很大。而我自己用wordpress,akismet是必用的插件,通过网址/昵称/邮件来对评论进行审核,判别率很高。所以自己尽力把国外的一个akismet php5 class调用到mod_visit中,实现akismet对评论的判别。

*本文由本人始发于bo-blog论坛,现转至个人博客上。从2010年10月到现在,经过永世的缘Bruce两位朋友将近一年的倾情测试,已经证明此插件的有效性和稳定性,故在此放出,方便更多的朋友

适用版本&版权声明

  • PHP版本:PHP5以上
  • bo-blog适用版本:Boblog2.1.1正式版,打了2.1.1_patch20100905补丁的可以支持
  • 使用了Alex Potsides 编写的Akismet php5 class,版权归Alex Potsides所有
  • 本人测试有效,在本人理解范围内无任何有害代码及漏洞,有能力的朋友可自行下载代码研究,所添加代码为184~527行,出现数据丢失等情况本人/及代码贡献者无主观故意,亦不负任何责任
  • 本人没有找到boblog预留对评论/留言属性(reproperty)的钩子,暂时无法作为插件发布
  • 请反馈测试信息,如若反馈良好,我会尽力改进

安装步骤

  1. 到boblog的inc目录下备份一下mod_visit.php文件,重命名为其它名称(例:mod_visit.phpbak),或者复制到本地(此步骤请务必进行
  2. mod_visit下载附件,解压后得到一个mod_visit.php,把在akismet申请得到的key填入514行,blog的网址填入515行
  3. 上传附件到boblog的inc目录下,测试能正常留言即可

常见问题

  • 安装这个之后我的博客没法正常评论/留言了,留言的时候弹出一个对话框,显示空白信息/显示一串错误代码,怎么办?
    这个问题很有可能是因为您使用了国内的空间,无法链接akismet服务器造成。如果出现这种情况,请暂时把原来的mod_visit.php恢复回去,如果可能,尽量贴出错误代码信息,方便我们改进
  • 为什么不能做成插件形式
    本人是100%的php新手,甚至连php类的构建都不会,不过我很愿意为大家做一些事情,所以做了一个这个初级东西。我看了boblog的插件开发指南,目前的版本中没有预留对评论属性(reproperty)处理的钩子,所以暂无做成插件形式的思路,欢迎各位高手指正/探讨

更多说明

  • 你改动了哪些代码,会不会对我现有数据有害?
    改动的代码都有注释,请搜索“开始”和“结束”字符串;主要源代码由Alex Potsides编写,各位高手可检查,网址为:PHP5 Akismet,里边有详细的说明及开发指南,*可能需要爬墙访问
  • 此版本功能说明
    此版本仅修改mod_visit.php一个文件,没有改动后台的评论及留言管理文件(应该是admin目录下的cp_reply.php和 cp_message.php),仅实现评论判定过程,不对akismet做”垃圾判定/误判”提交,日后版本酌情考虑添加

版本更新

  1. 2010-10-28:第一版本发布,仅实现最基本的调用akismet服务器判定功能,不向akismet提交任何入库信息(在本博客上判定为垃圾评论、误判等信息不反馈到akismet)

Akismet:强大的反垃圾评论插件

伴随着所谓的seo,垃圾评论从来就没有间断过,往往需要耗费大量的时间来进行删除。而 Akismet 是wordpress自带的两款插件之一,起到一个防范垃圾插件的作用,这个插件非常高效,为众多wper节省了不少时间。

防不胜防的垃圾广告

Akismet 已经帮您过滤了 77 条垃圾评论, 当前有 1 条评论在您的垃圾评论队列里。

一打开后台首页就能看到这个,而我博客正常总评论数也不过205个,垃圾评论所占的比例还是相当高的,这当中还包括不少人工判断很难辨别出来的垃圾评论,比如:

博主的内容和模板不错,呵呵,路过顶一下

或许有些朋友会说,这不算垃圾评论。但是,他的名字是“最有效的减肥药”,然后你在google一搜,他在数十个博客上,无论任何内容任何模板都发一遍,这样是不是垃圾评论呢?

而且有的更为聪明,名字改为比较正常的,也就是不那么明显的广告,纯粹为了增加外链,这样就非常难判断了。这个时候,Akismet 就能大显身手。

*粗略检查了一下,友情链接中的各位博主在反垃圾评论方面都做的不错。就在Alex’s life的博客上发现了这个:点击看图。Alex如果能看到,速度启用 Akismet 这个插件 :P

Akismet 工作原理推测

  • 云记录对比判断方式: Akismet 要求wordpress所在空间能正常连接到它的4组服务器当中的一个,所以,应该是把各种评论发表人的名称、邮件、网址和评论内容进行归类,当有新的留言发表时,通过对比数据库中的记录,然后自动判断是垃圾留言还是正常评论。
  • 用户人工判断: Akismet 还没有强大到能和人类一样思考的地步。所以,数据库中对垃圾评论和正常评论的判断依据还是用户的反馈。当时古博刚建立的时候,在很多站点上留言,几乎统统进入待审状态;而一两个月后,同样的数据都是通过Akismet直接第一时间显示出来。所以可推测, Akismet在接收到新用户数据的时候,先统统放入待审状态,等到用户进行判断,积累足够多的数据之后,就把这些数据归类为“垃圾”或“正常”,可以直接判定了。

这种方式非常恰当地体现了“我为人人,人人为我”的理念。所以,大家在平时留言判断过程中千万不能手软,不能说人肉推广就可以手下留情一些,这样是不对的,不仅是对自己的不负责,也有可能给别人带来困扰。

Akismet 安装使用

Akismet 的安装使用非常简单,不过还是大概说一下。

  1. 查看服务器状态: 进入worpress后台,插件– Akismet 配置。首先看一下服务器状态,如果服务器状态为绿色,恭喜你,可以使用 Akismet 了,请看下一步;如果服务器状态为不可用,那我建议您换个 wordpress空间 吧。
  2. 注册 Akismet API Key: 我们作为个人博客,肯定是免费的单博客的授权,点击这里进行注册。填入相关信息之后,就会有一封题为“Your Akismet API key”的邮件到您的邮箱了,然后找到“Your Akismet API key is:”字样后面的一串字符串,填入刚才的“Akismet 配置”页面中,点击更新选项,done!如果您对英语实在不行,可以留下姓名、邮箱,我帮您注册。
  3. 日常操作: 开启 Akismet 插件之后,当有新的评论,你只需要在后台查看一下就可以。如果发现有遗漏的,请毫不犹豫地把它扔到垃圾评论里,如果有误判的,也请第一时间弄出来。判断的依据主要还是是否与您的文章内容相关。

相关文章

  1. A.shun: 反垃圾评论:WP Anti Spam + Spam To Blacklist
  2. Qiqiboy: 围观wordpress中文圈内好玩的spam