2009年2月12日星期四

基于ASP的Z-Blog Akismet插件

  使用WordPress的用户一定知道Akismet这个插件,Akismet是应用广泛的一个垃圾留言过滤系统,其作者是大名鼎鼎的WordPress创始人Matt Mullenweg,Akismet也是WordPress默认安装的插件,其使用非常广泛。

  由于我使用的是基于ASP的Z-Blog系统,无法直接使用基于PHP的Akismet插件,因此以前我使用的是Z-Blog的Totoro和我自己写的反垃圾留言插件,但是在使用过程中,我发现了一个很大的问题,就是垃圾留言Spam黑名单数据量小,判断逻辑简单,不能自动更新,因此会漏掉很多垃圾留言,现在搞Spam的人都精的很,我自己写的反垃圾留言算法,无论如何细化,无论采取何种严厉的甚至影响正常留言的算法,都难以做到绝对精准的判断,因此我还要不断手动删除系统中的垃圾留言,久而久之,烦不胜烦。

  做为对比,专业的反垃圾服务具有海量的关键字库,这方面的最佳代表就是WordPress插件Akismet,我在WordPress中使用这个插件,几乎从来不用担心垃圾留言的问题,几乎99%以上的垃圾留言都被系统自动拦截了。做为反垃圾留言中的专家,Akismet的主要优点就是更新快,能够智能识别最新的垃圾留言,判定是否垃圾留言由Akismet服务商决定,误判率很低,因为Akismet用户很多,因此其他Blog手动标记垃圾留言后,发送者的链接会被自动加入Akismet系统的黑名单,世界各地的用户时时刻刻都在为Akismet共享资源,使得Akismet能识别的垃圾留言非常广泛,成为反垃圾Spam服务中的佼佼者。

  因此,我打算放弃现有的反垃圾留言策略,停用Totoro和月光Z-Blog反垃圾留言过滤插件,直接调用Akismet的接口来实现反垃圾留言。

  可惜的是,Z-Blog目前并没有Akismet插件,只有WordPress有Akismet插件,我有两个选择,或者将博客系统迁移到WordPress,或者自己开发一个基于Z-Blog的Akismet插件,经过反复抉择,我选择了后者,自己开发一个基于Z-Blog的Akismet插件。

  通过研究Akismet API和相关资料,终于花了一个中午时间写好了这个插件,插件的界面如下图所示。

Z-Blog Akismet插件

  启用Akismet插件后,需要填写一下Akismet API Key,这个Key要翻墙到WordPress网站上申请,如果大家不会,可以使用我截图中我自己申请的Akismet API Key,不过如果你的博客流量很大,建议还是自己申请Akismet API Key,否则可能会导致这个共用Key失效。

  另一个选项是启用垃圾留言手动审核,当Akismet检测到一个垃圾留言后,我这个插件有两种处理方式,一种是将留言放到审核区,手动审核后才显示出来,一种是直接删除,如果你信得过这个插件,就选择直接删除,不要手动审核了。

  插件下载:点击这里下载“Z-Blog Akismet插件”,压缩包中包含ZPI自动安装格式的文件,也包含手动安装的目录和文件,已经安装了Plugin Sapper的可以直接导入ZPI文件。

  发送垃圾留言的童鞋们请注意,要是你不想进Akismet的数据库,就不要继续在这里发广告啦。

  附录:Akismet API Key 申请攻略

  Akismet是wordpress过滤垃圾留言的一个插件,将这个插件启用后,并不能马上工作,还要对Akismet进行配置,要输入一个序列号才可以使用。

  访问http://wordpress.com,在首页上点击注册新用户。

  输入注册信息,注意,一定要保证邮件的正确性,因为WordPress的激活链接是发到你输入的邮箱里的。

  接收邮件,点击链接激活。

  最后收到一封确认邮件,里面就包含着Akismet的API Key。或者登陆http://wordpress.com,在http://wordpress.com/profile/中也可以见到Your API Key。