WordPress 7.2 计划引入 Secrets API 实现加密凭据存储

 内容管家 2026年8月27日 6 0

WordPress 7.2 秘密密钥 API 提案:原生加密凭证存储终于要来了 WordPress 长期存在一个安全隐患:插件若需调用 API 密钥,只能以明文形式写入 options 数据表。这些明文凭证会随数据库备份、暂存环境克隆等途径…

WordPress 7.2 秘密密钥 API 提案:原生加密凭证存储终于要来了

WordPress 长期存在一个安全隐患:插件若需调用 API 密钥,只能以明文形式写入 options 数据表。这些明文凭证会随数据库备份、暂存环境克隆等途径扩散泄露。针对这一架构性缺陷,贡献者 Eric Mann 在 Make WordPress Core 博客发布了一份 Secrets API 提案,计划在 WordPress 7.2 中引入首个原生加密凭证存储方案。

WPVibe advertisement

现状:插件各自为战,明文存储成顽疾

据 Mann 介绍,他六个月前在与 Two Factor 插件开发者讨论令牌加密时动手制作了概念验证插件,并主动请缨在 7.2 周期内完成实现工作。

目前 WordPress 没有任何「密钥」概念,所有插件只能把 API 密钥明文写入 options 表——因为这是唯一可用的存储方式。Google Site Kit、WooCommerce 支付网关等主流插件多年来自行实现了加密,但彼此标准不统一,没有形成社区共识。

Playground Team Ships Legacy Version Support, Making 23 Years of WordPress History Available in the Browser

「过去一个普通网站顶多存放一个 Mailchimp 密钥和一个 reCAPTCHA 密钥,出了问题也能承受。」Mann 在提案中写道,「但 AI 服务集成让凭证数量激增、泄露代价也高得多——模型提供商 API 密钥一旦泄露,就是按量计费的财务漏洞。爆炸半径扩大了,存储机制却原地踏步。」

今年 5 月 WordPress 7.0 推出 AI Connectors 页面后,明文 API 密钥的安全问题引发社区热议。WordPress 安全团队代表 John Blackbourn 随后在 Trac 上标记了这一架构性缺口

核心设计:三个函数、强制加密、可插拔后端

Mann 提出的方案是一套小型核心函数集:

  • wp_set_secret() — 写入加密凭证
  • wp_get_secret() — 读取解密凭证
  • wp_delete_secret() — 删除凭证

加密层默认启用且无法关闭。Mann 强调:「如果一个 API 可以被配置为存储明文,那它就是一个名字误导人的 Options API。」 默认情况下,加密后的密文存储在现有 options 表中,但主机可通过 drop-in 替换存储后端或密钥管理系统。API 还将赋予站点所有者查询能力:站点上存在哪些凭证、哪些代码在调用它们、上次轮换是什么时候。

Anne McCarthy Publishes WordPress 7.1 Decision Log, Reveals Behind-the-Scenes Confusion of the WCUS Launch

能力边界与已知限制

Mann 明确划定了 7.2 的范围:仅实现存储层,暂不包含管理后台。他表示先要把读写语义理顺,7.3 再做设置界面。WP-CLI 支持则会从第一天就内置,确保 API 有第一个官方消费者。

New Accessibility Lab Plugin Prototype Lays Groundwork for Accessibility Team’s First Canonical Plugin

对于安全边界,Mann 坦承任何运行在 WordPress 进程内的代码都能调用 wp_get_secret(),因此该 API 无法防御代码执行攻击——这是 Patchstack CEO Oliver Sild 在今年 5 月提出的质疑。但 Mann 认为更常见的泄露场景是数据库被盗,而非代码执行。

WordPress 7.1 “Mary Lou” Launches at WordCamp US With Responsive Styling, Improved Media Handling, and New Blocks

社区反馈:积极为主,质疑集中在多租户场景

提案放出后社区反馈整体积极。WordPress VIP 工程师 Jake Spurlock(提案推手之一)在 X 上表示,随着 WordPress 社区深入 AI 代理工作流,这个 API 正是刚需。

GravityKit 创始人 Zack Katz 在 Post Status Slack 直言提案「早该来了」——他长期受困于安全插件自动轮换 WordPress salts 时导致许可证密钥失效的老问题

WordPress Credits Team Proposes Graduate Retention Program, Launches Public Dashboard

开发者 emrl 表示团队此前独立用 defuse/php-encryption 库实现了相同功能,称提案「非常出色」。

最具实质性的设计质疑来自 Pantheon 高级开发者倡导者 Chris Reynolds。他指出许多主机采用外部密钥存储,读写路径与 WordPress 应用层分离:

WordPress 7.2 Planning Kicks Off With December 9 Release Date During State of the Word

「我们的密钥对应用层只读,写操作走 CLI 工具 Terminus 或仪表盘。」Reynolds 解释道,「当前 API 设计无法表达『某个存储后端只读不可写』这一状态。另外平台级存储本身已处理加密,API 的强制加密层会造成双重加密,让密钥在 WordPress 之外变成不可解读的黑箱。」

Mann 已计划先发布功能插件,供贡献者在进入核心前充分测试。他正在征集反馈,Trac 补丁预计 9 月底出炉。

时间线与质量优先原则

WordPress 7.2 测试阶段定于 10 月 20–22 日启动。Mann 明确表示,如果 API 届时未准备就绪,宁可推迟到 7.3,也不愿仓促合入。

延伸阅读

声明:1、本站大部分内容均为网络采集或AI生成所得,会尽量做好标注,但仍需注意自行判断和辨别内容的真实性与准确性。2、所有标注了“原创”的内容和产品均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。3、如若本站内容侵犯了原著者的合法权益,请携带相关版权证明文件联系我们进行下架或删除。

 标签:WordPress

内容管家

基于 AI 自动化工作流的发文助手~ 由 Actions Bridge 插件驱动

文章 评论 浏览 点赞

作者主页

留下第一个评论