调试时在作者页打印了用户对象,页面上直接出现一串以 $P$ 开头的密码哈希,还被搜索引擎快照抓走。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,直接把整个用户对象输出或者塞进页面脚本变量,里面带着密码哈希和邮箱这些不该出现在前台的字段,输出一次就收不回。
「WordPress 用户资料泄露」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。日志级别临时调高可以,记得改回去,长期开着既占磁盘又掩盖真问题。
$data = [ 'name' => $user->display_name, 'url' => get_author_posts_url($user->ID), ]; echo esc_html(wp_json_encode($data));
权限不要一口气开到最大,先加到够用再往上试,范围小才好收。
具体做法是,只挑前台真正需要的几个字段重新组装成数组;用官方整理函数做白名单输出,而不是整个丢出去;顺手排查模板和插件里遗留的那些调试输出语句。
最后用这个标准收尾,页面源码里搜不到密码哈希与邮箱,输出只剩昵称和链接,可以上线。
