WordPress 防止冒充博主昵称或邮箱留言

2015-11-23 03:24 566 7 条评论 龙笑天下

WordPress 一直以来都有个问题, 如果博主设置评论不需要审核批准就能发表, 那么有可能被人冒名顶替管理员进行留言。大家应该都知道,Wordpress 留言显示的头像是通过留言者的 Email 地址去匹配 Gravatar 通用头像进行显示的,这时候如果我们的邮箱和用户名被不坏好意的人知晓了(其实这个很容易就能得到),他就可以冒充管理员进行垃圾评论,甚至误导辱骂其他留言者回复等恶意行为。虽说管理员可以随后删除这些评论, 但是万一管理员长期不在线或者有人恶意留言那还是挺麻烦的。

下面就给大家分享 2 段有用的代码,用以避免不怀好意的人冒充管理员(Admin) 昵称或邮箱在 Wordpress 博客里面留言评论,保证 wordpress 安全。

方法 1

/**
 * 防止在 WordPress 别人冒充博主发表评论 - 龙笑天下
 * https://www.ilxtx.com/how-to-prevent-someone-posing-as-bloggers-in-wordpress.html
 */
add_filter( 'preprocess_comment', 'lxtx_check_comment_author' );
function lxtx_check_comment_author($incoming_comment) {
    if ( is_user_logged_in() ) return $incoming_comment;

    $isSpam = 0;

    // 将以下代码中的 lxtx 改成博主昵称
    if (trim($incoming_comment['comment_author']) == 'lxtx'){
        $isSpam = 1;
    }
    // 将以下代码中的 example#ilxtx.com 改成博主 Email
    if (trim($incoming_comment['comment_author_email']) == 'example#ilxtx.com'){
        $isSpam = 1;
    }

    if(!$isSpam) return $incoming_comment;

    wp_die('请勿冒充博主发表评论');
}

方法 2

/**
 * 防止在 WordPress 别人冒充博主发表评论 - 龙笑天下
 * https://www.ilxtx.com/how-to-prevent-someone-posing-as-bloggers-in-wordpress.html
 */
add_filter('preprocess_comment', 'lxtx_no_fake_blog_owner_comment');
function lxtx_no_fake_blog_owner_comment($incoming_comment){
    // 将以下代码中的 龙笑天 和 龙笑天下 改成博主昵称
    $names = array('龙笑天', '龙笑天下');
    // 将以下代码中的 example#ilxtx.com 改成博主 Email
    $emails = array('example#ilxtx.com');

    if( !is_super_admin() ){
        if( in_array(strtolower(trim($incoming_comment['comment_author'])), $names) || in_array(strtolower(trim($incoming_comment['comment_author_email'])), $emails) ){
            wp_die('请不要冒充博主发表评论!');
        }
    }

    return $incoming_comment;
}

以上 2 种方法任选其一,达到的效果是一样的:如果非登陆用户使用管理员昵称或邮箱进行留言回复行为,会直接弹出错误提示。

PS:如果出现某些问题,可以把其中的wp_die改为err试下。

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

2015-11-20

2015-12-14

发表评论

评论
正在努力加载中...
扫一扫二维码分享