【WordPress 安全】彻底禁用 wp-login.php 登录页面,防止被机器扫描爆破

WordPress 安全是个老生常谈的问题,不能忽视。而对于 WP 安全来说,默认登录页面 WP-login….

%e3%80%90wordpress-%e5%ae%89%e5%85%a8%e3%80%91%e5%bd%bb%e5%ba%95%e7%a6%81%e7%94%a8-wp-login-php-%e7%99%bb%e5%bd%95%e9%a1%b5%e9%9d%a2%ef%bc%8c%e9%98%b2%e6%ad%a2%e8%a2%ab%e6%9c%ba%e5%99%a8%e6%89%ab

WordPress 安全是个老生常谈的问题,不能忽视。而对于 WP 安全来说,默认登录页面 WP-login.php 的安全问题是绕不过去的。很多恶意机器扫描 WP-login.php 进行爆破登录,对服务器资源和网站安全都造成了很坏的影响,相信大家都想知道怎么解决此问题!

.singlemiddle-banner{margin-left:auto;margin-right:auto;overflow: hidden;}

1 隐藏后台登录地址

目前网上广泛流传的做法是隐藏 WP 默认后台登录地址,代码方法主要是下面 2 种,放入自己主题的 functions.php 里即可:

方法 1方法 2
/**
 * WordPress 隐藏后台登录地址 - 龙笑天下
 * https://www.ilxtx.com/wordpress-disable-wp-login-php.html
 * 方法 1
 */
add_action('login_enqueue_scripts', 'lxtx_login_protection');
function lxtx_login_protection(){
    if( empty($_GET['theme']) || ($_GET['theme'] != 'dragon') ){
        $url = home_url();
        header('Location: $url');
    }
}
/**
 * WordPress 隐藏后台登录地址 - 龙笑天下
 * https://www.ilxtx.com/wordpress-disable-wp-login-php.html
 * 方法 2
 */
add_action('login_enqueue_scripts', 'lxtx_login_protection');
function lxtx_login_protection(){
    if( empty($_GET['theme']) || ($_GET['theme'] != 'dragon') ){
        $url = home_url();
        echo "<script language='javascript' type='text/javascript'>window.location.href='$url';</script>";
    }
}

加入以上代码后,你只有打开 http://你的域名/wp-login.php?theme=dragon 才能进入 WP 的默认登录页面。但,此方法是掩耳盗铃,仅仅只是隐藏了后台登录地址而已,对于那些使用机器批量扫描直接 post 爆破登录的来说,防护能力为 0…

2 限制登录错误次数

为了解决上面隐藏登录地址代码的防护能力缺陷,我之前一直使用Login LockDown插件来限制登录错误次数,效果非常好。

3 彻底封禁登录地址

上面提到了,隐藏后台登录地址没有防护爆破的能力,在此,龙笑天发现了 2 种彻底封禁 wp-login.php 登录页面的方法,强烈推荐使用方法 3.2,可防止各种 post 扫描爆破,使自己的网站更加安全!

3.1 利用 Nginx 来封禁

可以利用 nginx 配置来直接禁止 wp-login.php 的访问请求。在你域名 conf 中,在其他 location 之前,再加多下面的语句:

location ~ ^/wp-login.php {
	deny all;
	log_not_found off;
	access_log off;
}

此方法会导致无法通过 wp-login.php 来登录 WP 和退出登录 WP 了。

3.2 WP 自带钩子来封禁

将下面代码放入自己主题的 functions.php 里即可:

当前内容已被隐藏,您需要登录才能查看

此方法直接封禁 wp-login.php 页面的各种请求,各种扫描爆破登录也就无效了。当然,默认的 WP 登录页面也不能进入了;对于那些使用前台弹窗登录(比如本站的Dragon 主题)或自定义登录页面的高级主题来说,不会收到任何影响。

友情提示:
Dragon主题自下版本 3.7.0 开始,已经自带了彻底封禁 WP 默认登录页面的功能,前往“主题设置-常用功能-安全相关”里,找到“隐藏后台登录地址”,按说明填写即可启用;自带了限制登录错误次数的功能,前往“主题设置-社会化登录-安全”里,找到登录限制,按说明设置好即可启用。

Dragon 主题:带用户中心和商城系统的博客 CMS 高级 WordPress 主题-BG

Dragon 主题:带用户中心和商城系统的博客 CMS 高级 WordPress 主题

Dragon 主题:带用户中心和商城系统的博客 CMS 高级 WordPress 主题

1 前言 Dragon 主题(演示网站:www.ilxtx.com),一款强大的多功能高级 WordPress 商城会员主题,自适应响应式 HTML5+CSS3,兼容 Firefox、Chrome、…

4 删除或改名 wp-login.php

最后,说一种较“极端”点的方法,直接删除掉网站根目录下的 wp-login.php(或改个复杂名字),这样就啥扫描都没用了… 但要注意,删除后,不能使用 WP 默认的登录页面登录网站了;另外,已经登录的用户也不能通过 logout 进行注销登录了。

相关参考

WordPress 隐藏后台登录地址的最新最简单的方法 – Themebetter
修改 WordPress 后台登陆地址和隐藏用户名 – boke112 联盟
Disable Or Redirect WP-login.php – Stackexchange
WordPress 自定义设置 wp-login.php 页面为 404 状态或跳转 – 泪雪博客
如何保护 WordPress 的 wp-login.php 和 wp-cron.php – kn007
WordPress 安全第三步:限制登录次数,防止暴力破解 – WordPress 果酱

类别:WordPress函数讲解

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册