WordPress添加注册和登录用户名黑名单

2016-04-19 分类:wordpress, 文章教程 阅读(6114) 评论(8)

黑名单的必要性

WordPress是目前世界上最受欢迎的开源建站系统,这也代表着想打WordPress系统主意的人也很多,如果你也使用WordPress, 而且你允许用户访问你的登录页(wp-login.php),那你肯定也经常在网站访问日志中看到有很多恶意登录的记录,都是使用一些常用的用户名和密码 字典进行反复尝试登录,虽然一般都不会破解到帐号密码,但是这样的扫描也浪费了不少服务器资源。

因为WordPress的系统结构的原因,黑客很容易就能获取到管理员(也就是第一个用户)的用户名,然后使用这个用户名进行暴力破解。但是,如果我们拒绝这个用户名的登录动作,那无论破解工具跑多久都不会有结果。

解决思路

通过判断注册和登录 POST 数据中的用户名决定是否允许执行注册或登录动作。

注册判断使用 register_post 动作,登录判断使用 wp_authenticate 动作。

实现代码

//注册登录检查
function dmeng_check_authentication($username){
    //用 | 分割用户名,且 | 前后不留空格
    $black_list = 'admin|administrator|guest|root|test|tester';
    if( !empty($black_list) ){
        $black_list = explode('|', $black_list);
        if( in_array($username, $black_list) ){
            wp_die( __( '该用户名已被系统保留,不能用于注册或登录!', 'dmeng' ), '', array( 'back_link'=>true ) );
        }
    }
}
add_action ('wp_authenticate' , 'dmeng_check_authentication');
add_action ('register_post' , 'dmeng_check_authentication');

如果你只想拒绝注册,你可以把拒绝登录这行删掉:

add_action ('wp_authenticate' , 'dmeng_check_authentication');

如果你想要注册黑名单和登录黑名单不一样,你可以分别调用两个不同函数。但是!请注意:在这个名单里的用户名都不能注册或登录,包括管理员(假如管理员用户名也在里面的话)。

建议给WordPress添加邮箱登录功能,然后把管理员用户名也加入黑名单,然后使用管理员邮箱登录,这样做的话,那些使用获取到的管理员用户名进行暴力破解的就全都被拒绝登录动作了!

您可能也喜欢:

WordPress elegant单栏主题清新优雅而至

或许你觉得这款主题似曾相识,又或许你对它很陌生,不管怎么样,它有一个名字 ― elegant(优雅而至)。 这款主题是我三年前的拙作。2013年12月份写的初稿,2014年1月发布的主题。 三年后,我想起了这款主题并重新编写了代码,终于让它体现了当时创作的价值,elegant ― 甘于平淡,不...

more

wordpress 大屏青绿forget主题3.0.2

2016.8新 应大部分人要求加上了音乐logo 侧边栏优化 颜色改回清新绿 后台主题设置重写,增强 侧边栏重写 小工具添加功能 首页文章排版优化 评论代码重写 评论表情 2015.11.04 主界面样式修改,小清新风格 去掉了logo音乐旋转播放器 优化了手机模式侧边栏打不开的现象 修改文...

more

QQ主题正式发布

此QQ主题为本站唯一官方渠道,如有雷同纯属模仿。 主题价格 199 元,联系QQ570047973购买 关于页面有更多的联系方式。 2020年9月开始,QQ主题最新价格109元 ...

more

评论&留言
欢迎新朋友你的到来!
已经有8 条评论抢在你前面了~
昵称
邮箱
网站

  1. xyayy
    发烧 官方

    add_action (‘wp_authenticate’ , ‘dmeng_check_authentication’);

    #1
    回复
  2. 悖论

    大神,我又来了。

    #3
    回复
  3. 1249203831

    看看您的博客!

    #4
    回复
  4. 雅兮网

    发烧兄右侧边栏的QQ框实在是太有创意了

    #5
    回复
  5. 琉璃社

    好久不更新了啊

    #6
    回复
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册