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

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

黑名单的必要性

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');

以上的代码拒绝了 admin、administrator、guest、root、test、tester 这几个用户名的注册和登录动作,当然了,如果你只想拒绝登录,你可以把这行删掉:

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

Lyric-player 歌词同步滚动播放器插件

Lyric-player是一款可以在文章内添加歌词同步滚动播放的音乐插件,今天就把这个小功能分享给大家。 下载地址及使用说明 - 评论回复可见此处内容需要您评论本文过后才能查看。如有不便还请谅解。为了作者的辛勤劳动,评论请留下您的真实信息。 后来 - 刘若英 var may_houlai = l...

more

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

  1. 悖论

    大神,我又来了。

    #2
    回复
  2. 雅兮网

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

    #4
    回复
切换注册

登录

忘记密码 ?

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

切换登录

注册

    - 00:00 / 00:00