2022.3.26,我的博客被人尝试暴力穷举密码登录后台,虽然有封禁插件在,但看着每天几十条的登录失败警告还是很糟心。
根据封禁记录不难看出攻击者只是在穷举密码,没有穷举用户名,这是因为WordPress的作者主页机制可以让攻击者不用登录就能获取到后台用户名,所以只需要暴力穷举密码即可,如果密码非常薄弱或者与网站有很强的关联性就很容易让攻击者得手。解决办法除了安装插件限制IP登录次数外,还可以将登录地址隐藏起来,相当于给后台上了双层保险。
我的需求:
网上有很多解决办法,最简单的莫过于插件,不过全功能的防护插件普遍占用资源较高,容易造成网站卡慢,所以不做考虑。
最简单也最常用的方法就是在主题的function.php
中加入如下代码
//保护后台登录
add_action('login_enqueue_scripts','login_protection');
function login_protection(){
//Location后改成你的站点,xx和xxx可自定义
if($_GET['xx'] != 'xxx')header('Location: https://www.wpdaxue.com/');
}
这样登录地址就变成了https://www.wpdaxue.com/wp-login.php?xx=xxx
,如果访问默认登录地址直接跳转到https://www.wpdaxue.com/
但是这种方法更改后的登录地址不够精简,不仅有?
还要输入key值 不够优雅。如果不在乎这些的话也是个不错的方法
此方法需要修改php文件,强烈建议事先备份,出现问题直接覆盖还原 建议关闭WordPress核心更新,否则每次更新都需要重新更改地址
WordPress默认的登录文件为wp-login.php
,那么我们要做的就是把这个文件名字换成自己想要的,步骤如下
wp-login.php
改成想要的名称(不容易被猜到的),这里以hell.php
为例hell.php
内的wp-login
全部替换为hell
,大概需要替换14处wp-includes
目录内的general-template.php
,将wp-login
全部替换为hell
至此网站登录地址修改完毕,新的登录地址为yoursite/hell.php,非常的优雅٩(ˊᗜˋ*)و
此外,还可以在general-template.php
内搜索$login_url = site_url
,将第一个参数改为你想要的地址,以Noheck.php
举例,意思是如果有人通过wp-admin
尝试登录后台或者直接访问后台某个地址时跳转到site_url()
设置的地址内。
修改后需要在网站根目录新建一个Noheck.php
文件,内容自定 可以发挥下自己的恶趣味
改完地址后,截止到3.28再也没收到过一次登录失败警告,效果显著
IP Blacklist Cloud