網生@誌 | zEUS.'Blog

首页 » Wordpress研究 » 2012-03-15 »

WordPress SPAM 批量删除及防治

字体大小:T | T

有一段时间没有管理博客,登录后台发现有几千条垃圾评论!而且垃圾评论还以每分钟5~6条的速度增加,这已经严重影响到了服务器的效率,必须着手解决。新增的这几千条垃圾评论全部都是国外的机器英文垃圾评论,好在阻止它们有一个比较容易的方法:在 WordPress 主题的 functions.php 文件中添加如下代码即可友好的阻止纯英文评论。

function scp_comment_post( $incoming_comment ) {
    $pattern = '/[一-龥]/u';
 
    // 禁止全英文评论
    if(!preg_match($pattern, $incoming_comment['comment_content'])) {
        wp_die( "You should type some Chinese word (like \"你好\") in your comment to pass the spam-check, thanks for your patience! 您的评论中必须包含汉字!" );
    }
    return( $incoming_comment );
}
add_filter('preprocess_comment', 'scp_comment_post');

接下来就要开始批量删除这些 SPAM ,在 WordPress 后台一页页的删除 SPAM 显然不太现实,直接在数据库中删除它们则非常简便:
1、登录 MYSQL 后台,找到跟 WordPress 评论相对应的数据库表,如果当初在安装 WordPress 的时候没有修改数据库前缀,那么默认的 WordPress 评论表应该是“wp_comments”

Wordpress 数据库 wp_comments 表

Wordpress 数据库 wp_comments 表

2、初步观察绝大多数垃圾评论来自一个 IP 地址:“91.207.6.138”,我先在 SQL 编辑页面查询一下这个 IP 到底发了多少条 SPAM:

SELECT * FROM 'wp_comments' WHERE 'comment_author_IP'='91.207.6.138'
查询某 IP 下的所有评论

查询某 IP 下的所有评论

结果有2692条结果,

查询结果

查询结果

3、简单看了一下,确定都是 SPAM 无误,回到 SQL 编辑页面,将他们全部删除:

DELETE FROM 'wp_comments' WHERE 'comment_author_IP'='91.207.6.138'
删除某 IP 下的所有评论

删除某 IP 下的所有评论

瞬间2692条 SPAM 被干掉!

4、Wordpress 本身会根据我们设置的黑名单自动将评论列为 SPAM 而不在后台显示,由于我长期未操作,后台显示的 SPAM 也有好几百条了,放弃手动删除,依然直接操作数据库:

DELETE FROM 'wp_comments' WHERE 'comment_approved'='spam'
批量删除默认垃圾评论

批量删除默认垃圾评论

还有一些“待审”评论用同样的方法删除:

DELETE FROM 'wp_comments' WHERE 'comment_approved'='0'

这其中涉及到的是 wp_comments 表中 comment_approved 字段,这个字段有3个值:
comment_approved = 1 —— 已获准评论
comment_approved = 0 —— 待审评论
comment_approved = spam —— 垃圾评论
在执行数据库操作时务必细心,否则删掉的东西是找不回来的…

5、经过以上所有操作,我发现 SPAM 还是删不干净… 干脆一不做二不休,准备删除今年以来的所有评论。博客很久没更新,2012年以来除了 SPAM 基本没有其他评论了,全部删掉也无所谓:

DELETE FROM 'wp_comments' WHERE 'comment_date'>='2012/1/1' and 'comment_date'<='2012/3/4'

wp_comments 表中 comment_date 字段是用于记录时间的,以上就是删除表内某个时间段内所有数据的 SQL 写法。

基本上 SPAM 的批量删除就到此为止了,终于还博客以清静。不过呢,在天朝人肉 SPAM 是防不胜防的,但数量上肯定不会像机器 SPAM 那么疯狂… 一般来说手动删除和设置黑名单即可,方法大家都知道就不多做介绍了。

另外还可以使用 SNS 帐号登录的方法来避免人肉 SPAM ,Wordpress 这方面的插件还不少,以后有机会再记录。

« »

已经有1人发表了评论

发表您的看法

TOP COMMENTS BOTTOM