查 _two_factor_enabled 这个 meta,十二个管理员账号只有一个值是 1。剩下十一个全靠密码,其中一个密码还是八位生日。乍看像缓存或者权限的锅,追下去往往不是。

wp user list --role=administrator --field=ID | while read id; do
  echo -n "$id "; wp user meta get $id _two_factor_enabled 2>/dev/null || echo 0
done

追下去是这么回事:两步验证插件装了不等于开了,开关按用户存,老账号不会自动继承。管理员越多漏掉的越多,爆破只需要攻破最弱的那一个。

「TOTP 覆盖率」这类改动最怕改一半,回滚脚本先准备好,再动生产。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

偶发问题先统计频率,一小时几次和一天一次,查法完全不同。改完顺手把文档补一句,省得下次自己重新推一遍。

监控和日志的时间要对上,时区不一致会多绕很大一圈。

具体做法是,先列出所有 administrator 角色账号,逐个查两步验证的 meta 值;对没开的账号强制重置密码并推送绑定,给一个截止时间;新账号创建时默认开启,别指望用户自己去设置页点。

验收就看一点,逐个登录确认都要求输入动态码,再查 meta 十二个账号都是 1。

作者 9823189