
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress暴力破解防护
WP集市
2025-09-10
【WordPress教程】
1920人已围观
-
WordPress这玩意儿用的人多,坏蛋们也爱盯着搞。暴力破解就是他们最懒但最烦人的一招——像拿一万把钥匙瞎试你家门锁。别慌,咱一步步把门焊死。
-
先明白坏蛋咋动手:他们用脚本疯狂试「用户名+密码」组合,尤其盯着
admin
、wp-admin
这些常见登录入口。WordPress默认登录页是/wp-login.php
,简直在喊“来打我呀”。 -
第一层盾牌:改登录地址。把默认路径变成秘密通道,脚本就懵了。用代码实现的话,扔这段到主题的
functions.php
里:
// 重命名wp-login.php的访问路径
function custom_login_url() {
return site_url('my-secret-entrance'); // 改成你想要的路径
}
add_filter('login_url', 'custom_login_url');
// 屏蔽直接访问wp-login.php
function redirect_login_page() {
$login_page = home_url('/my-secret-entrance/');
$page_viewed = basename($_SERVER['REQUEST_URI']);
if ($page_viewed == "wp-login.php" && $_SERVER['REQUEST_METHOD'] == 'GET') {
wp_redirect($login_page);
exit();
}
}
add_action('init', 'redirect_login_page');
- 第二招:限制登录尝试。默认WordPress不限制失败次数,这不行。装个插件像
Limit Login Attempts
,或者手搓代码:
// 记录登录失败次数并锁定
function track_failed_logins($username) {
$failed_logins = get_option('failed_logins', array());
$ip = $_SERVER['REMOTE_ADDR'];
if (empty($failed_logins[$ip])) {
$failed_logins[$ip] = 0;
}
$failed_logins[$ip]++;
if ($failed_logins[$ip] > 3) { // 3次失败就锁定
wp_die('锁了,等半小时再试吧');
}
update_option('failed_logins', $failed_logins);
}
add_action('wp_login_failed', 'track_failed_logins');
- 第三块盾:双因子认证(2FA)。密码对了还得手机验证据说能挡99%暴力破解。装插件像
Google Authenticator
或者Wordfence
都行,代码实现略复杂但原理是登录时插个验证钩子:
// 简化的2FA检查示例(实际需配合API)
function check_2fa($user, $password) {
if (!empty($_POST['2fa_code'])) {
$stored_code = get_user_meta($user->ID, '2fa_secret', true);
if ($_POST['2fa_code'] != $stored_code) {
wp_die('二次验证码错了');
}
}
}
add_action('wp_authenticate_user', 'check_2fa', 10, 2);
- 隐藏用户名:别用
admin
当用户名,改掉现有管理员显示名。数据库里跑条SQL改掉user_login
字段(备份先!):
UPDATE wp_users SET user_login = 'new_username' WHERE user_login = 'admin';
- 用CAPTCHA验证码折磨机器谷歌的
reCAPTCHA
免费又好用,插件一堆或者代码贴到登录页:
// 在登录表单加CAPTCHA
function add_captcha_to_login() {
echo '<div class="19ab-cbc2-3ff4-249b g-recaptcha" data-sitekey="你的站点密钥"></div>';
}
add_action('login_form', 'add_captcha_to_login');
// 验证CAPTCHA
function verify_captcha($user, $password) {
if (isset($_POST['g-recaptcha-response'])) {
$response = wp_remote_post('https://www.google.com/recaptcha/api/siteverify', array(
'body' => array(
'secret' => '你的密钥',
'response' => $_POST['g-recaptcha-response']
)
));
$result = json_decode($response['body'], true);
if (!$result['success']) {
wp_die('验证码没通过,你是机器人吗?');
}
}
}
add_action('wp_authenticate_user', 'verify_captcha', 10, 2);
- 最后,服务器层面防护:用
.htaccess
封禁连续失败的IP。比如5分钟内失败5次就拉黑:
# 在.htaccess里加这段
<Limit POST>
Order Deny,Allow
Deny from 192.168.1.100 # 手动封IP示例
</Limit>
# 或用Fail2Ban工具动态封禁(需服务器权限)
- 日常习惯:用强密码别用
password123
,插件及时更新,定期查日志看谁在瞎试。安全是个过程不是一劳永逸——但以上组合拳打完,脚本小子基本就去祸害别人了。
(完)
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。
上一篇:WordPress登录尝试限制
下一篇:WordPress自动备份配置

热门文章
