记录我工作学习生活中的点点滴滴......

无验证码博客垃圾评论屏蔽探索
发布于 基础编程
2013-04-18 15:05:27
4164
2

垃圾评论实在是让人厌烦,这次我重写博客程序并移植到sae上之后垃圾评论又多了起来。为了禁止垃圾评论的发布,我逐步对程序做了一些改动,下面是一些记录。

1、设置一批关键词,当出现关键词的时候就禁止发布
这个比较简单,就不给实例了,更好的是整合一些插件,他们的过滤库比较强大,比如wordpress的Akismet。

2、判断来路,不是本站的禁止发布

if ( stripos($_SERVER['HTTP_REFERER'], 'pakey.net') === false ) {
    $this->error("错误的评论来源页,请返回刷新后再次发布!");
}

3、对评论内容做出控制,比如我这里要求必须有中文

if (preg_match("/^[\w|:\/\?\-\.]+$/",$data['content'])){
    $this->error('评论不能为全英文');
}
if (preg_match("/[\x{4e00}-\x{9fa5}]/u", $data['content']) == 0) {
    $this->error("评论内容请不少于一个中文汉字");
}
4、修改评论框表单的name值,比如我这些毫无规律的表单name
$data['content'] = $this->clearContent($_POST['mnvxyui']);
$data['email'] = $_POST['zcgzh789nsdfeg'];
$data['username'] = $_POST['sdgerert'];
$data['siteurl'] = $_POST['sdfe456ydfg'];
5、我发现我这里的垃圾评论很大一部分都是国外的,所以我又做了一些设置
if ( stripos($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'zh') === false ) {
    $this->error("不支持国外用户进行评论!");
}

这样过了一段时间,确实是没有什么垃圾评论了,只要没有评论软件针对你的网站进行针对性的设置,基本上不会再有垃圾评论了。当然道高一尺魔高一丈,防spam也不是一劳永逸的事情,还需要针对的逐步进行修改。



分享本文到:
除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:Pakey's BLog >>基础编程 >>无验证码博客垃圾评论屏蔽探索
本文地址:http://www.pakey.net/blog/ban-blog-spam-proposal.html