wordpress关闭密码重置

出于网站安全性考虑,可能有时候我们需要关闭密码重置功能,因为大家使用的主题不同,所以方法也会有所不同,以下是几种关闭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;
    }
}

补充安全加固措施

  1. 限制登录尝试次数
    安装安全插件(如Wordfence或iThemes Security)并启用登录尝试限制功能。
  2. 更改登录URL
    使用插件(如WPS Hide Login)修改默认登录地址/wp-admin
  3. 验证用户注册
    如果开放注册:设置 → 常规 → 取消勾选”任何人都可以注册”。
  4. 更新密钥
    wp-config.php中更新安全密钥(可从WordPress密钥生成器获取新密钥)。

操作后验证

  1. 尝试访问重置密码链接:你的域名/user-sign?tab=resetpassword 应返回首页或403错误
  2. 检查WordPress登录页面的”忘记密码”链接是否消失

重要提示

  • 操作前备份网站文件和数据库
  • 如使用缓存插件/服务器缓存,更新后请清空缓存
  • 定期检查日志确认攻击是否停止

这些方法通过代码层彻底禁用密码重置功能,同时服务器层拦截恶意请求,能有效提升安全性。对于自定义登录链接(如user-sign),建议检查是否由插件生成并考虑替换为默认WordPress登录机制。

wordpress
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容