WordPress 票证 #30465 已于 10 年前开放 – 2025 年是否会成为最终得到解决的一年?

已发表: 2025-01-03

早在 2014 年 11 月,一位名叫 Sergej Mueller 的 WordPress 开发人员提出了一个看似合理的担忧:用户无法知道他们正在使用的插件是否已从官方存储库中删除 - 即使出于安全原因删除了该插件。他的请求——官方编号为#30465——很快就被关闭,但没有解决。谢尔盖几乎不知道它会在近十年后重新开放。

2025 年初,我写了一篇关于它的更新。

为什么?

出于几个原因。

首先,它与最近(确切地说是去年 10 月)发生的一些插件安全事件高度相关。我很快就会讨论这些。其次,解决问题的意愿和动力已经增强——票证上的最后一次活动是在不到一个月前:

WordPress 门票 30465。

所以看起来谢尔盖的耐心很快就会得到回报……

我们先来回顾一下票证的发展历程。然后,我们可以进入最近几周发生的事情:

10 年之久的 #WordPress 问题最终会在 2025 年得到解决吗? 😲🐛
点击发推文

从“无法解决”到登上 WCEU 2023 的舞台🙅‍♂️

当票证第一次打开时,它收到了一些回复,但很快就被 WordPress 首席开发人员 Andrew Nacin 关闭了。他关闭了它并将其标记为“无法修复”,并解释说删除插件的原因有多种,而不仅仅是安全问题:

此后出现了一些评论,但后来逐渐消失为有人试图重提这个问题的一年一次(有时甚至更少)的评论。

然后, 2023 年 3 月,发生了一些有趣的事情。 WordPress社区知名人物Joost de Valk正式重新开票。他的论点是 WordPress 有责任告诉用户插件是否得到维护。

他还指出,WordPress.org 已经在平台本身上显示了这些信息,但只是在 60 天的等待期之后。他的建议是为 WordPress 后端带来同样的透明度,用户可以在后端实际管理他们的插件。

这在整个线程中掀起了新的热情浪潮。这张票变得如此受欢迎,以至于 Patchstack 的首席执行官兼联合创始人 Oliver Sild 甚至在WCEU 2023演讲中提到了这一点:

来自 Patchstack 的 Oliver 在 WCEU 2023 演讲中提到了 WordPress 票证 30465。

他不仅提到了这一点,还鼓励 WCEU 与会者使用他添加到演示文稿中的自定义二维码在主题上留下评论。他还在 Patchstack 明年举办的一场比赛中使用了这个插件作为延迟空中接力。

Patchstack 2024 年 10 月活动 🪲

2024 年 10 月,Patchstack 启动了 Bug Bounty 活动,作为网络安全月的一部分。如果奥利弗在 WCEU 演讲中提到的#30465 票是空中接力,那么本次赛事的结果将是灌篮高手。

参与该活动的安全研究人员最终在一个月内发现了 1,571 个有效的安全漏洞报告,数量惊人。这些也不只是小问题——我们正在讨论的是:

  • 73 例攻击者可以上传恶意文件。
  • 67 个可能危及整个数据库的 SQL 注入漏洞。
  • 攻击者提升权限的 58 种方法。
  • 17 个远程代码执行漏洞(哎呀!)

后果导致近 1,000 个插件暂时关闭。当 Patchstack 尝试就这些问题联系插件开发人员时,几乎 74% 的人完全无法联系到。他们的联系表单已损坏、电子邮件被退回或域名已过期。

更糟糕的是,许多易受攻击的插件已在存储库中存放了 6-11 年。有些可以追溯到 17 年前!是的,仍然有依赖这些插件的实时网站。

不用说,所有这些数据都为 Oliver 在线程中提供了杠杆作用,推动票证#30465 向前完成。他很高兴地利用了这一点,并在讨论该事件的官方 Patchstack 博客文章发布前两周发布了一些细节:

Oliver Sild 使用数据为将 WordPress 票证 30465 移至完成提供有力的理由。

从讨论到行动🛠️

当奥利弗发表评论时,该帖子上的活动已经如滚雪球般越滚越大,因此很难衡量其个人影响。然而,假设它火上浇油并非没有道理。尤其是其他用户(其中​​至少有一个是 Patchstack 员工)公开支持他的评论。

作为回应,WordPress 首席开发人员 Dion Hulse (@dd32) 在几个问题上提出了一些反对意见,但也通过创建一个实验性插件来实现期待已久的功能,从而大大加强了这一点:

提议的 WordPress UI 集成票号为 30465。

实现非常简单——当 WordPress.org 存储库中的插件被关闭时,用户会看到一条清晰但经过衡量的通知。没有引起恐慌的红色警报,只有有关插件状态的简单信息。

有人找到谢尔盖并告诉他: “妈妈,我们成功了!”

嗯……差不多了。

它还不是 WordPress 核心的一部分,但我确实感觉到我们已经接近终点线了!

现在它已被证明是可能的,下一步是决定最终的实施。然后就可以集成到WordPress核心中了。

接下来怎么办? 🎯

截至撰写本文时,该功能正在考虑包含在 WordPress 6.8 中(根据 Dion Hulse),尽管仍有一些障碍需要清除。这些包括:

  • 确定通知时间(正在讨论是否可能延长 60 天的窗口期)。
  • 标准化关闭原因文档。
  • 平衡用户意识与开发人员支持负担。
  • 确定确切的位置(站点运行状况屏幕与直接在插件上,如插件示例屏幕截图所示)。

大图🌐

WordPress 票证 #30465 的演变告诉我们一些关于 WordPress 安全性在过去十年中发生的有趣变化。随着生态系统的发展和安全挑战的成倍增加,曾经被视为边缘案例的问题变得越来越重要。

虽然花了十年时间才达到这一目标,但实验性插件表明我们终于找到了一种平衡安全意识与用户体验的解决方案。由于数以百万计的 WordPress 安装可能受到易受攻击的插件的影响,因此此功能还不够快。

如果您想跟进开发,请查看 GitHub 上的实验性插件,或关注票号 #30465。这可能是我们见证长达十年的对话转化为切实成果的罕见时刻之一。 💡

您觉得这个功能怎么样?作为 WordPress 用户,您认为得知插件已关闭对您有帮助吗?请在评论中告诉我。我们在那里见。

耶!您已完成文章的结尾!