出于网站安全性考虑,可能有时候我们需要关闭密码重置功能,因为大家使用的主题不同,所以方法也会有所不同,以下是几种关闭wp密码重置功能的方法,大家可以根据自己的情况选择一种方式。
方案一:通过代码禁用重置密码功能(推荐)
编辑主题的functions.php文件
登录宝塔面板 → 文件 → 定位到当前主题目录(如/www/wwwroot/你的网站/wp-content/themes/当前主题/
)→ 编辑functions.php
文件 → 在末尾添加以下代码:
// 完全禁用密码重置功能 add_filter('allow_password_reset', '__return_false'); // 重定向重置密码请求到首页 add_action('login_form_lostpassword', 'disable_password_reset_redirect'); function disable_password_reset_redirect() { wp_redirect(home_url()); exit(); } // 阻止自定义重置链接访问 (根据你的日志URL调整) add_action('init', 'block_custom_reset_link'); function block_custom_reset_link() { if (isset($_GET['tab']) && $_GET['tab'] === 'resetpassword') { wp_redirect(home_url(), 301); exit(); } }
移除登录页面的”忘记密码”链接
在functions.php
中继续追加:
// 移除登录页面的忘记密码链接 add_filter('login_form_bottom', 'remove_lostpassword_link'); function remove_lostpassword_link($content) { return preg_replace('/<a.*?lostpassword.*?<\/a>/i', '', $content); }
方案二:使用.htaccess屏蔽恶意请求(Apache环境)
编辑.htaccess文件
宝塔面板 → 文件 → 打开网站根目录的.htaccess
→ 在# BEGIN WordPress
上方添加:
# 屏蔽resetpassword请求 RewriteEngine On RewriteCond %{QUERY_STRING} tab=resetpassword [NC] RewriteRule ^user-sign/?$ - [F,L]
方案三:通过Nginx配置屏蔽(Nginx环境)
编辑站点配置文件
宝塔面板 → 网站 → 对应站点设置 → 配置文件 → 在server{ }
块内添加:nginx复制下载
#禁止重置密码
location ~* /user-sign {
if ($query_string ~* "tab=resetpassword") {
return 403;
}
}
补充安全加固措施
- 限制登录尝试次数
安装安全插件(如Wordfence或iThemes Security)并启用登录尝试限制功能。 - 更改登录URL
使用插件(如WPS Hide Login)修改默认登录地址/wp-admin
。 - 验证用户注册
如果开放注册:设置 → 常规 → 取消勾选”任何人都可以注册”。 - 更新密钥
在wp-config.php
中更新安全密钥(可从WordPress密钥生成器获取新密钥)。
操作后验证
- 尝试访问重置密码链接:
你的域名/user-sign?tab=resetpassword
应返回首页或403错误 - 检查WordPress登录页面的”忘记密码”链接是否消失
重要提示:
- 操作前备份网站文件和数据库
- 如使用缓存插件/服务器缓存,更新后请清空缓存
- 定期检查日志确认攻击是否停止
这些方法通过代码层彻底禁用密码重置功能,同时服务器层拦截恶意请求,能有效提升安全性。对于自定义登录链接(如user-sign
),建议检查是否由插件生成并考虑替换为默认WordPress登录机制。

© 版权声明
文章版权归作者所有,未经允许禁止转载。
THE END
暂无评论内容