性价比最高的香港ASP、PHP主机提供商
做网站,就上凡科建站

WordPress 如何有效拦截和过滤垃圾评论

Loading
0
Comodo SLL证书促销 - 免费ssl证书申请_ssl证书购买_ev ssl证书_https证书购买 - GDCA_数安时代

WordPress垃圾评论一直都是比较烦人的,如果你没有采用有效的拦截方式,你会发现,仅仅一天时间,你的WordPress站点就会有数以万计的垃圾评论!那么,如何有效地拦截过滤垃圾评论?

spam-comments-wpdaxue_com

倡萌之前已经介绍了不少方法,一起回顾一下:

WordPress代码将垃圾评论拒之门外

这是倡萌一直在用的方法,可以过滤绝大多数垃圾评论,当然,是不是会有几个漏网之鱼,推荐使用。

WordPress自动拒绝包含特定关键词的垃圾评论

WordPress防垃圾评论插件:Akismet

Akismet虽然很强大,效果很好,但是会写入很多数据库信息,而且很好 CPU 资源,所以倡萌很早前就不用了。

WordPress 评论过滤插件:wp-itluren-comment-filter

WordPress垃圾评论过滤可以以昵称 IP 邮箱 网址 内容片断为根据指定评论人员黑名单,并阻止他们提交评论。同时,评论次数超过设定的范围就会暂时禁止评论。当然,还将全英文、全部复制文章内容作为内容的评论进行过滤。最后为了安全起见,还提供了禁止特定IP用户访问站点!

WordPress 验证码插件:SI CAPTCHA Anti-Spam

WordPress 文章评论滑动解锁插件:myQaptcha

使用验证码过滤评论也是一种不错的方法,但是不太利于用户体验。

由于绝大多数的垃圾评论都是英文的,所以国内不少朋友在使用 Some Chinese Please 插件,它可以有效地拦截内容中不带有中文字的comment和trackback(pingback),不写入数据库中,可有效地减小spam对blog服务器的无谓使用。虽然已经 2 年多没有更新,但还是可用的。

其实还可以简化下,直接将下面的代码添加到主题的 functions.php 文件,效果与使用 Some Chinese Please 插件相同:

1
2
3
4
5
6
7
8
9
/* refused spam */  
function refused_spam_comments( $comment_data ) {  
$pattern = '/[一-龥]/u';  
if(!preg_match($pattern,$comment_data['comment_content'])) {  
err('评论必须含中文!');  
}  
return( $comment_data );  
}  
add_filter('preprocess_comment','refused_spam_comments');

源代码:http://www.kuqin.com/zhanz/20120326/319460.html,原代码使用wp_die函数显示错误HTML信息,会造成模版错位,由 @知更鸟 http://zmingcx.com/refused-spam.html 稍改进。

@Teddysun http://teddysun.com/ 经过实测反馈,Wordpress中并没有err这个函数(这个函数也许是存在于 @知更鸟 的主题里)。因此不会有提示信息出现。最好还是用wp_die函数,这样就会有提示信息。所以,上面的代码如果不生效,可以使用以下代码:

1
2
3
4
5
6
7
8
9
/* refused spam */  
function refused_spam_comments( $comment_data ) {  
$pattern = '/[一-龥]/u';  
if(!preg_match($pattern,$comment_data['comment_content'])) {  
wp_die('评论必须含中文!');  
}  
return( $comment_data );  
}  
add_filter('preprocess_comment','refused_spam_comments');

方法进阶:WordPress评论中禁止或必须包含指定内容

针对那些使用技术手段,比如GET、POST等方式不填写前台表单,直接读取后台程序文件的spam,只有屏蔽IP才能缓解疯狗一样的攻势,其它什么验证码、滑动解锁等等都没用。

可以在.htaccess文件中添加:

1
2
3
Order Deny,Allow  
Deny from xxx.xxx.xxx.xx  
Deny from xxx.xxx.xxx.xx

禁止某些IP访问。

好了,希望本文能为你提供帮助,如果你还知道其他更有效的方法,欢迎和我们一起分享!

支付宝扫码打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

MetInfo | 最适合企业网站建设的cms系统

关于 倡萌

一个疯狂的 WordPress 爱好者,喜欢折腾 WordPress 主题,分享 WordPress 资源。如果你也喜欢 WordPress,欢迎和我一起交流!

精彩推荐

WordPress邀请用户注册的插件:Invite Friends to Register 和 Secure Invites

WordPress邀请用户注册的插件:Invite Friends to Register 和 Secure Invites

如何为网站添加 腾讯微博、新浪微博 一键关注按钮

如何为网站添加 腾讯微博、新浪微博 一键关注按钮

6 条评论

  1. wp_die会使网页错位怎么办,有替换的函数吗?

  2. 用了代码之后,还是有每天有几条些垃圾评论漏网了

  3. 昨天经过实测,Wordpress中并没有err这个函数(这个函数也许是存在于知更鸟的主题里)。因此不会有提示信息出现。
    err(‘评论必须含中文!’);
    最好还是用wp_die函数,这样就会有提示信息。
    wp_die(‘评论必须含中文!’);
    我已经在知更鸟的这篇文章后评论。

发表评论