You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress安全:如何禁用user_id 0及检测密码泄露用户

WordPress网站user_id=0篡改用户数据的排查与解决办法

问题背景

我的WordPress网站安装了Stream插件用于监测网站活动,排查可疑活动时发现异常:user_id为0的对象正在修改其他用户的数据(截图如下)。此前网站曾遭恶意软件感染,已清理并安装了安全插件和防火墙,但问题仍未解决。需要解决两个核心问题:

  1. 如何禁用user_id 0?
  2. 如何检测密码泄露的用户?

user id 0 修改其他用户数据

当前安装的插件列表:

Admin Menu Editor   Version 1.11 by Janis Elsts | Auto-updates disabled
BEAF - Ultimate Before After Image Slider & Gallery Version 4.3.15 by Themefic | Auto-updates disabled
Custom links in Elementor Image Carousel    Version 1.1.1 by Charlie Etienne | Auto-updates disabled
Elementor   Version 3.13.2 by Elementor.com | Auto-updates disabled
Element Pack Lite - Addons for Elementor    Version 4.8.0 by BdThemes | Auto-updates disabled
Essential Addons for Elementor  Version 5.7.2 by WPDeveloper | Auto-updates disabled
Essential Blocks    Version 4.0.8 by WPDeveloper | Auto-updates disabled
Favethemes Insights Version 1.2.6 by Favethemes | Auto-updates disabled
Flying Scripts  Version 1.2.3 by WP Speed Matters | Auto-updates disabled
Halorumah   Version 0.0.1 by Ardi Renaldi | Auto-updates disabled
Houzez CRM  Version 1.3.3 by Favethemes | Auto-updates disabled
Houzez Login Register   Version 2.8.1 by Favethemes | Auto-updates disabled
Houzez Theme - Functionality    Version 2.8.1 by Favethemes | Auto-updates disabled
Nav Menu Roles  Version 2.1.2 by Kathy Darling | Auto-updates disabled
Pricing Table by PickPlugins    Version 1.12.9 by pickplugins | Auto-updates disabled
PRO Elements    Version 3.6.4 by PROElements.org | Auto-updates disabled
Redux Framework Version 4.4.1 by Team Redux | Auto-updates disabled
Site Kit by Google  Version 1.93.0 by Google | Auto-updates enabled
Stream  Version 3.9.3 by XWP | Auto-updates disabled
Wordfence Security  Version 7.9.2 by Wordfence | Auto-updates disabled
WPCode Lite Version 2.0.12 by WPCode | Auto-updates disabled
WP Offload Media Lite   Version 3.2.2 by Delicious Brains | Auto-updates disabled
WP Rocket   Version 3.12.3.3 by WP Media | Auto-updates disabled
Yoast SEO   Version 20.7 by Team Yoast | Auto-updates disabled

一、禁用user_id=0的操作方法

WordPress中user_id=0代表未登录用户(访客),正常情况下访客没有权限修改用户数据。出现这种情况说明网站存在权限漏洞,或是有恶意代码绕过了权限校验。

1. 拦截未登录用户的敏感操作

通过WPCode Lite添加自定义代码,直接阻止未登录用户修改/创建用户:

  • 打开WPCode Lite插件,新建PHP代码片段,插入以下代码:
add_action('init', function() {
    // 识别未登录用户(user_id=0)
    if (get_current_user_id() === 0) {
        // 拦截用户更新操作
        add_filter('pre_user_update', function($data, $user_id) {
            wp_die('未授权的用户修改操作');
        }, 10, 2);
        
        // 拦截用户创建操作
        add_filter('pre_user_create', function($data) {
            wp_die('未授权的用户创建操作');
        });
    }
});
  • 保存并启用该片段,未登录用户尝试修改用户数据时会被直接阻断。

2. 排查漏洞来源

  • 先禁用小众/非知名插件(如Halorumah、Custom links in Elementor Image Carousel),观察异常操作是否消失,排查插件漏洞。
  • 检查主题核心文件(functions.php、header.php等),确认是否存在隐藏后门或未授权操作的恶意代码。

二、检测密码泄露的用户

1. 利用Wordfence Security扫描

  • 打开Wordfence的「扫描」功能,运行完整扫描,插件会自动检测用户密码是否在已知泄露数据库中。
  • 扫描完成后,查看「密码泄露」类告警,直接重置对应用户的密码,并强制用户登录时修改密码。

2. 辅助检测方案

如果Wordfence检测不够全面,可通过以下方式补充:

  • 导出用户邮箱列表,使用本地运行的密码泄露检测工具批量检查(避免使用需上传数据的在线工具,防止用户信息外泄)。
  • 通过WPCode添加登录校验代码,拦截使用泄露密码的登录行为:
add_action('wp_authenticate', function($username, $password) {
    // 替换为本地存储的泄露密码哈希列表
    $leaked_password_hashes = [];
    if (in_array(wp_hash_password($password), $leaked_password_hashes)) {
        wp_die('你的密码已泄露,请重置密码后再登录');
    }
}, 10, 2);

额外建议

  • 立即更新所有插件、主题及WordPress核心版本,禁用的插件优先升级后再测试。
  • 开启Wordfence实时防护,设置严格登录规则(如限制登录次数、禁止陌生IP登录)。
  • 定期通过Stream插件查看网站活动日志,重点关注用户数据修改、权限变更等敏感操作。

内容的提问来源于stack exchange,提问作者Loderunner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 06:35:29