2025年09月08日/ 浏览 5
每天有数百万次机器人扫描针对/wp-login.php
和/wp-admin
的暴力破解请求,这是WordPress网站最普遍的安全威胁之一。我的一个客户网站曾因使用默认地址,导致服务器被注入挖矿脚本——仅因为攻击者用字典爆破破解了弱密码。
修改登录地址就像给家门换锁眼位置,虽然不能替代强密码(好比锁芯质量),但能消除99%的自动化攻击。下面这些方法我已在上百个站点验证,根据你的技术能力选择最适合的方案。
推荐插件:WPS Hide Login
优势:零代码、1分钟完成、不影响核心文件
/my-secret-door
)⚠️ 注意:
– 避免使用admin/login
等常见组合
– 记好新地址!忘记需通过数据库恢复(插件目录/wp-content/plugins/wps-hide-login
内有应急说明)
通过Apache服务器规则实现,比插件更底层高效。在网站根目录找到.htaccess
文件,在「# BEGIN WordPress」上方添加:
apache
RewriteEngine On
RewriteRule ^secret-path$ /wp-login.php [NC,L]
RewriteCond %{THE_REQUEST} wp-login\.php [NC]
RewriteRule ^ - [R=404,L]
效果:
– 通过yoursite.com/secret-path
访问登录页
– 直接访问wp-login.php返回404
– 不影响后台其他功能(如AJAX请求)
如果你使用Nginx,在站点配置文件中添加:
nginx
location ~ ^/new-login {
try_files $uri $uri/ /wp-login.php?$args;
}
location ~ ^/wp-login.php {
return 404;
}
重启Nginx服务后即生效。这种方法比.htaccess性能更好,适合高流量站点。
在主题的functions.php
末尾添加:
php
addaction(‘init’, function() {
$request = parseurl($SERVER[‘REQUESTURI’]);
if(strpos($request[‘path’], ‘hidden-login’) !== false) {
require_once ABSPATH . ‘wp-login.php’;
exit;
}
});
addfilter(‘siteurl’, function($url) {
return str_replace(‘wp-login.php’, ‘hidden-login’, $url);
}, 10, 3);
优势:
– 不依赖服务器类型
– 可与缓存插件完美兼容
– 登录表单提交地址同步修改
wp-login.php
重命名为custom-login.php
wp-login.php
字符串 wp-includes/general-template.php
中的相关函数 ❌ 缺点:
– WordPress更新后会恢复
– 可能破坏插件兼容性
– 需要同步修改密码重置等功能的链接
通过FTP删除插件目录,或使用phpMyAdmin执行:
sql
UPDATE wp_options SET option_value = 'a:0:{}' WHERE option_name = 'active_plugins';
使用Burp Suite或SimplyTest.me扫描,确认/wp-login.php
返回403/404状态码。
部分APP依赖默认路径,建议在自定义路径基础上配置「应用密码」。
/var/log/auth.log
中的异常请求