WordPress默认评论方式较为开放,一旦有人得到管理员的QQ邮箱就可以冒充管理员进行评论,本文提供解决办法。
WordPress默认的评论采用邮箱+昵称的方式,并调取gravatar头像作为用户标识。这样一样来,如果不法分子知道了管理员的邮箱就可以在站点冒充管理员进行评论,极有可能给网站带来损害,此类评论的危害程度要远高于垃圾评论,必须采取手段予以制止。
我们只需要在配置一段代码就可以轻松让冒充管理员的人无法提交评论,将如下代码放入主题模板函数functions.php里。
//禁止冒充管理员评论 function usercheck($incoming_comment) { $isSpam = 0; if (trim($incoming_comment['comment_author']) == '管理员昵称') $isSpam = 1; if (trim($incoming_comment['comment_author_email']) == '管理员邮箱') $isSpam = 1; if(!$isSpam) return $incoming_comment; err('你咋不上天呢?还敢冒充管理员!'); } if(!is_user_logged_in()) add_filter( 'preprocess_comment', 'usercheck' );
请将代码中昵称和邮箱地址更换为你的站点管理员信息即可,如有能力可以在主题后台写入管理员信息选项,然后在上面代码中调取,不赘述!
配置后,非管理员登陆状态下使用管理员名称或邮箱都会有错误提示,如下图!
代码仅仅是在用户评论的时候进行一次判断,并不请求数据库,所以对资源的消耗是有限的,是一段非常不错的代码。
此后管理员进行评论就必须要登陆才可,这样在一定程度上提高了网站安全。
这玩意用上,APP客户端回复评论就被限制了,从哪里判断指定UA可以放行?
我可不想上天哈哈
多个管理员该怎么写!
我可不想上天,哈哈~
这个文章我记得留有评论的,但是现在竟然没看到,难道在审核中或被删除了?
@懿古今: 木有哦,估计你当时没有提交成功吧
@飞鸟: 还可以这样的?最近几篇文章我都发了评论,我当初以为是缓存,然后隔天再看还没有,难道是真的没提交成功?
我想问问,如果使用了这个方法,是不是自己就不能在未登陆的情况,对互访朋友们的评论进行回复了?
@动感单车: 那是自然的,因为不登陆使用管理员账号评论安全隐患挺大的,就好比我知道你的邮箱,然后去你站用你的昵称和你的邮箱进行评论,前台显示就是站长回复的。
@飞鸟: 好的,知道了!