WP-CLI 的核心与插件校验命令会将本地文件与相应的校验和进行比对,适合在例行维护、版本变更后或发现异常时做一次可复核的文件完整性巡检。校验不一致表示文件与参考版本不同,并不等于已经遭到入侵;应结合变更记录、文件来源和部署时间判断。
巡检前:确认范围、备份与权限
先确认操作对象是获准维护的站点,并记录站点路径、WordPress 版本、语言环境和插件版本。多站点环境还要确认目标站点;WP-CLI 的 --url 参数可用于指定目标站点。
校验命令主要读取文件,但异常后的隔离、替换或恢复会改变站点状态。操作前应确保有可用的文件与数据库备份,必要时创建服务器快照,并确认备份能够恢复。建议用能读取站点文件、但不具备不必要高权限的系统账户运行 WP-CLI,避免以 root 身份执行后造成文件属主或权限变化。
进入 WordPress 安装目录,或通过 --path 明确指定目录:
wp --path=/var/www/example core version
先核对输出的版本是否与部署记录一致。校验需要获取参考校验和,因此运行环境还应能访问相应的 WordPress.org 服务。不要为了绕过证书问题而关闭 TLS 校验。
执行最小巡检
校验 WordPress 核心文件
wp --path=/var/www/example core verify-checksums
该命令将本地核心文件与对应版本的参考校验和进行比较。若站点使用非默认语言,或需要核对特定版本,可明确指定参数:
wp --path=/var/www/example core verify-checksums --version=6.5.3 --locale=zh_CN
示例中的版本号应替换为站点实际安装的版本。不要为了让结果“通过”而随意指定与现场不符的版本或语言环境。
巡检插件文件
检查所有插件:
wp --path=/var/www/example plugin verify-checksums --all
也可以只检查指定插件:
wp --path=/var/www/example plugin verify-checksums akismet
插件校验针对 WordPress.org 提供参考校验和的插件文件。自研插件、商业插件或其他没有对应参考校验和的插件,不能仅凭这条命令完成同等校验。插件的 readme.txt 等“软变更”在默认检查中可能不触发错误;如需将这类变化也纳入严格比对,可加上 --strict:
wp --path=/var/www/example plugin verify-checksums --all --strict
严格模式会扩大报告范围。升级流程或维护人员对说明文件做过修改时,结果可能反映的是正常变更,而不是安全事件。
复核异常结果
巡检结果应与版本、变更记录和文件来源一并留档。可以将输出保存到工单或巡检记录中,并注明执行时间、命令参数、站点路径和操作账户。
常见异常可按以下思路复核:
- 文件校验不一致:确认近期是否有版本升级、补丁发布、人工修改或部署覆盖;再将本地文件与可信发布包中的对应文件比较。
- 文件缺失:检查升级是否中断、部署是否遗漏文件,以及文件是否曾被有意移除。
- 出现额外文件:先确认它是否属于站点自定义代码、部署工具或其他合法组件,不要仅凭“多出来了”就直接删除。
- 插件无法匹配校验和:确认插件来源、名称和版本。若插件不是通过 WordPress.org 分发,或没有可用的参考校验和,该结果不能证明插件文件无异常。
官方命令文档列出了插件与核心校验的用途及参数,可在实际执行前核对具体选项:插件校验命令 和 核心校验命令。
异常文件的隔离与恢复
确认文件不属于已记录的正常变更后,先保存证据:记录路径、时间、属主和权限;按事件流程保留文件副本及校验结果。若怀疑站点正处于安全事件中,不要急于覆盖或删除文件,以免破坏后续分析所需的信息。隔离操作也可能影响站点运行,应先评估影响,并将证据副本保存到 Web 根目录之外、访问受控的位置。
恢复时,优先从可信来源取得与现场版本一致的核心或插件文件,再逐项比对和替换。若需要重装插件,应先备份其文件与相关数据;不要把重新安装视为无需评估的安全操作。对于曾做过本地修改的文件,先与版本控制、变更单或原始发布包核对,避免覆盖自定义实现。完成恢复后重新运行对应校验命令,并验证站点功能。
核心与插件校验覆盖的是相应范围内可比对的文件,不会替代对自定义代码、主题、上传目录、配置文件或数据库内容的独立检查。把结果当作一条可复核的证据,而不是入侵判定或全面安全结论,才能避免误删有效改动,也能让后续处置有据可查。

广东省深圳市 1F
WP-CLI 校验命令确实能帮大忙
上海市 2F
自研插件没法用这个校验有点遗憾
甘肃省 3F
平时巡检容易忽略权限问题,已记下
广东省深圳市 4F
遇到异常先备份再处理很关键
甘肃省 5F
严格模式会不会误报太多正常修改?
山东省烟台市 6F
多站点环境指定 URL 参数很实用
广东省深圳市 7F
文件多了不敢直接删,得先排查来源
重庆市 B1
@ 顽皮的兔子 可以先比对发布包,确认不是部署残留
上海市 B1
@ 顽皮的兔子 额外文件也可能是缓存或上传产物
山东省烟台市 B1
@ 顽皮的兔子 我一般先留证再隔离到站外
上海市松江区 8F
建议搭配版本控制一起看更稳妥
上海市青浦区 9F
非官方插件没参考校验和怎么判断?
上海市崇明县 10F
恢复文件前记得核对自定义代码改动
重庆市 11F
巡检输出最好带参数和时间一起存档
山东省烟台市 12F
别把校验通过当成全站安全
山东省烟台市 13F
恢复后还要重新跑一遍命令确认
甘肃省 14F
上传目录和数据库内容还得单独检查
上海市奉贤区 15F
不要为了过检随意指定版本或语言
上海市崇明县 16F
隔离副本放Web根目录外更稳