WordPress 7.2 引入的 Secrets API,原本是 WordPress 首次获得内置密钥加密存储能力的机会,但在距正式发布不到四周之际,却遭遇了来自社区核心开发者的强烈反对:REST API 的创建者 Ryan McCue 公开呼吁将这一 API 从 7.2 中撤出,并直言给出 “strong -1”。

- 现状:明文存储:目前大多数插件把 API key、访问令牌这类凭据直接以明文形式写进数据库。一旦数据库副本泄露(备份、暂存克隆、导出、dump),凭据随之暴露。
- 提案时间线:该 API 由 Automattic 赞助的贡献者 Eric Mann 在 2026 年 8 月提出,10 月随 Beta 1 纳入代码库。
- 设计目标:为 WordPress 提供第一条内置的加密密钥存储路径,让密钥不再是数据库里一眼可见的明文字符串。
核心变化:McCue 要求把 API 移出 7.2
Human Made 与 Altis 产品副总裁、WordPress REST API 的创建者 Ryan McCue 于周四在 API 的开发笔记下留言,要求把 Secrets API 从 7.2 中移除,发文时间距预定发布不足四周。

他提出的行业最佳实践是:密钥应当在可能的情况下与其余数据分开存储,并以只读的方式提供给运行中的应用。
- 密钥管理应“带外”进行:管理动作应脱离应用本身,以防止篡改、保证密钥变更的可审计性,并支持按合规要求进行轮换。“在所有这些场景中,密钥都是提供给应用的东西,而不是由应用管理的东西。”
- 写入权限会“固化”生态:把写入能力纳入特性范围并让它“很容易做到”,很可能导致 API“以一种方式固化下来,以至于密钥提供方为了生态兼容性必须支持写入”。
- 安全检查容易被忽略:判断密钥能否被设置的检查需要额外防御性编码和通读 API 文档,“非常容易漏掉这些检查”。他以 WordPress AI 插件为例,指出该插件默认认为保存一定成功,保存失败时并不给出提示。
在提案阶段,McCue 与 Pantheon 高级开发者倡导者 Chris Reynolds 已提出类似担忧:他们各自的平台把密钥保存在自有系统中,WordPress 只能读取、不能修改。McCue 认为当前 API 混淆了“主机提供的密钥”与“WordPress 自己存储的敏感数据”两类资产,建议拆分为两个 API——前者只读,后者单独处理,并直言“我对这个 API 整体仍然非常担心……这是我的强烈反对票(strong -1),在上述问题解决前应当把它撤出 7.2 核心”。

两方分歧:只读更安全,但插件需要落盘
Mann 当天回应称,他在八月时曾“认真对待”这些意见,API 也因此做了调整。

- 主机可以接入自有安全存储:宿主可以接入只允许读取密钥的系统;在这类主机上,插件尝试保存密钥会直接报错,而不是“看起来保存成功了”。
- 但只读对多数站点无解:Mann 指出,大多数 WordPress 站点根本没有在 WordPress 之外管理密钥的途径——凭据通过插件设置页录入,随后以明文躺在
wp_options里,“出现在每一次 dump、备份、暂存克隆和导出中”。只读 API 对这类站点没有任何帮助,因为插件仍需要一个地方存放管理员刚输入的值。 - 拆分方案会转嫁复杂度:对 McCue 拆分 API 的建议,Mann 认为这“把复杂度推给了插件作者”,插件作者需要在每个主机上自行判断该用哪一个。
- AI 插件问题:承认修复:Mann 称 AI 插件的问题是个“合理发现(fair catch)”,会修复,同时已在开发笔记中补充说明:对于不允许保存的主机,插件应当如何处理。
Mann 反对把 API 撤出 7.2,理由是:“八月提出的那些关切,正是提供方(provider)重构所解决的问题,剩下的只是一个消费方的 bug,正在修复。”

影响与建议
面向主机与托管服务商:Courtney Robertson 已在 Make WordPress Hosting 博客发布测试征集,要求各主机在 11 月 17 日 RC1 之前测试 Secrets API 以及 7.2 的另外两项变更,并把结果回帖在文章评论中。

测试前必须确认的技术前提:

- 该 API 依赖站点在
wp-config.php中拥有自己的 secret key;只有通过 WordPress 自带安装程序新建的站点才会自动获得该密钥。 - Robertson 提到,在某个托管平台上,测试期间升级的站点缺少这个 key,但这在插件真正开始依赖该 API 之前不会造成破坏。
面向插件作者:在 API 是否留在 7.2 尚未定论、且各主机支持程度不一的情况下,插件不应假设保存必定成功,应对写入失败做出显式提示与降级处理;同时需要评估在只读主机上的行为。

时间节点:WordPress 7.2 计划于 12 月 8 日正式发布,RC1 前的这一周是各主机反馈并影响最终形态的关键窗口。




