被垃圾评论烦得受不了了,某天在后台删除垃圾评论的时候,顺手拿评论者的邮件地址在google上搜索了一下,结果发现了StopForumSpam这个网站,我Blog上大多数垃圾评论发布者的邮箱和IP地址都可以在这个网站的数据库中搜索到。
进一步研究了一下,发现这个网站还提供了API,而且不难实现,于是花了一天多的时间,写了个插件出来,还顺便对Javascript入了个门,也对ajax有所斩获。
好久不用php,发现写起来确实方便、顺手,不过拿来写界面就比较痛苦了。
插件原理:
采用StopForumSpam API,查询评论者的邮箱及IP地址,对于黑名单中的用户,禁止提交评论。
注:StopForumSpam是一个统计垃圾评论发布者网站,现在数据库中已经有超过300万条信息了。
这是在我Blog上一天内的屏蔽成果。
使用说明:
cookie屏蔽:当评论者评论被拒后,在cookie中留下记录,下次此评论者再次评论时,将无需查询数据库,直接就能拒绝,提高效率。
审核评论阈值:为了防止数据库中的误报,可以设置该值,当出现频率大于等于该值时,评论将被标记为待审核。
拒绝评论阈值:为了防止数据库中的误报,可以设置该值,当出现频率大于等于该值时,评论将被拒绝。
注意:如果审核评论阈值>=拒绝评论阈值,该评论将被拒绝。
关于屏蔽数偏高,造成此现象的原因是,评论被正常提交、或提交到待审核,boblog将会在cookie中写入评论提交时间,并且在一段时间内禁止再此评论。
而如果评论直接被拒,则不会记录评论提交时间。开启cookie屏蔽功能,可以起到类似效果。实际上,插件统计到的屏蔽数,才是真正的垃圾评论提交数。
注:开启本插件后,评论提交时间将有一定延长,因为需要查询远程数据。开启cookie屏蔽后,将只在第一次提交评论的时候需要查询,大大提高了效率。
安装说明:
把stopspam复制到plugin文家夹下,并在后台安装。
由于boblog并没有提供相关接口本插件需要hack inc/mod_visit.php文件
查找
if (check_ip ($userdetail[‘ip’], $forbidden[‘banip’])) catcherror($lnc[209]);
并在其上方添加
include (‘plugin/stopspam/checkspam.php’);
plugin_stopspam_checkcookie ($stopspam);
查找
if ($v_contentc) $v_content=$v_contentc;
并在其上方添加
plugin_stopspam_run ($stopspam,$userdetail[‘ip’],$v_repemail,$suspectspam);
点击这里下载文件