如果你WordPress搭建的网站开放了注册,又不想用户通过找回密码功能来找回密码,那么可以使用下面的代码禁用密码重置功能。
把以下代码添加到主题的函数文件里面,不会添加的话参见:安全添加代码到functions.php文件的方法:Code Snippets
function disable_password_reset() { return false; } add_filter ( ‘allow_password_reset’, ‘disable_password_reset’ );
禁止后,用户点击忘记密码就会提示无法设置密码了。
为什么要禁用找回密码功能?
对于纯内部团队使用、个人独立博客或多用户受控站点,WordPress 登录界面的“找回密码”(Lost your password?)链接常常成为黑客发起恶意撞库攻击与用户名枚举扫描的突破口。彻底关闭该功能能够有效收紧系统安全入口边界。
两种实用安全加固方案
方案一:在 functions.php 中阻断找回密码请求
在当前主题的 functions.php 文件中追加以下过滤代码:
// 禁用 WordPress 原生找回密码处理
function disable_lost_password() {
if ( isset( $_GET['action'] ) && in_array( $_GET['action'], array( 'lostpassword', 'retrievepassword' ) ) ) {
wp_redirect( wp_login_url() );
exit;
}
}
add_action( 'login_init', 'disable_lost_password' );
方案二:CSS 隐藏登录页面重置链接
在登录页面样式中注入 #nav { display: none; },直接隐藏登录框下方的找回密码文字入口。