将旧版本的 WordPress 自动更新到 4.7 的提议引发了激烈的争论

已发表: 2019-08-09

WordPress 贡献者、开发人员和社区成员目前正在讨论一项提案,以实施一项有关旧版本安全支持的新政策。 上周开始讨论,当时安全团队负责人 Jake Spurlock 要求就将安全修复反向移植到旧版本的不同方法提供反馈。 在这次讨论之后,由 Automattic 赞助的 WordPress 核心的全职贡献者 Ian Dunn 发布了一项关于推进新政策的提案:

支持最新的 6 个版本,并将不支持的站点自动更新到支持的最旧版本。

这意味着当前支持的版本将是 4.7 – 5.2,并且 3.7 – 4.6 分支最终将自动更新到 4.7。

实际上,这将为每个分支提供大约 2 年的支持,并且大约 10% 的当前站点最终将自动更新到 4.7。 一旦 5.3 发布,支持的最旧版本将变为 4.8。

邓恩概述了实施新政策的详细计划,该计划涉及测试一小部分网站以识别问题,然后将旧网站从一个主要版本逐步更新到下一个版本(不是一次全部更新)。 站点管理员将在自动更新前至少 30 天收到通知,其中包含管理员中的电子邮件和通知,这也将提供选择退出的机会。

该提案已收到数十条评论,其中一些贡献者支持,一些支持修改推出,而另一些则明确反对将旧站点自动更新到主要版本的想法。

普遍的担忧之一是,由于电子邮件地址无法正常工作或没有足够频繁地登录他们的管理仪表板,许多管理员将不会收到任何通知。 反对者还认为,即使升级失败的网站有后备方案,但由于插件或主题的问题,某些网站可能会以 WordPress 无法检测到的方式被破坏。

“后端通知甚至不会开始弥补缺乏可靠的电子邮件通信,”Glenn Messersmith 说。 “有很多网站所有者在他们的网站开发完成后从不冒险进入后端。 这些人也不会收到电子邮件通知,因为电子邮件地址是某个早已不复存在的开发人员的地址。

“对于那些从未看到任何通知的人来说,任何类型的错误检测都无法充当安全网。 网站所有者可能会以各种方式将他们的网站视为“损坏”,而更新脚本可能无法检测到。”

出于对废弃站点破坏或管理员严重依赖已废弃插件的担忧,Dunn 同意根据当前提案,这些类型的情况可能是不可避免的。

“我绝对可以同情这种情况,但我们必须在某个地方划清界限,”邓恩说。 “我们没有无限的资源,目前的政策对整个 WordPress 生态系统都有破坏性影响。

“实际上,永远不会在纯粹的好事和纯粹的坏事之间做出选择; 他们总是在相互竞争的权衡之间。

“我绝对同意,如果少数网站所有者不得不做额外的工作来升级他们的网站是很糟糕的,但从总体上看,这比让我们的安全团队受到极其繁重的支持政策的阻碍要好得多。”

提案作者声称“没有人会被迫更新;” 反对者认为要求用户选择退出不是同意

除了可能破坏网站的问题外,那些反对该提议的人也不会同意 WordPress 在未经网站管理员明确同意的情况下强制更新。 为用户提供一种选择自动更新主要核心版本的方法是 Matt Mullenweg 确定在 2019 年开展的九个项目之一。但是,该提案的计划更加激进,因为它需要 3.7 的网站所有者– 4.6 分支如果不希望增量自动更新到 4.7,则选择退出。

“无论如何,他们仍然保留代理权,没有人会被迫更新,每个人都保留对他们网站的控制权,如果他们愿意,可以选择退出,”邓恩说。 “默认情况下开启某事与强迫某人做某事有很大不同。 我们将使退出变得非常容易——只需安装一个插件,无需配置——并且退出说明将包含在每封电子邮件和管理员通知中。”

邓恩在评论中进一步澄清了谁将收到这些更新:

没有人会被迫,而是一个选择退出的过程。 如果有人已经禁用了对主要版本的自动更新,那将受到尊重,并且他们的网站将不会更新。

如果有人单击电子邮件中的退出链接,或者如果他们单击管理员通知中的退出按钮,则更新也将被禁用。

唯一会收到更新的人是:

1)想要更新
2) 不在乎
3) 放弃了他们的网站或电子邮件帐户

讨论中的一些参与者询问为什么在 4.7 上获取这些站点的过程不能选择同意,而不是强制那些不选择退出的人进行更新。 无论退出机制多么方便,设置一个退出机制并不构成同意。 许多将被迫进入此过程的网站所有者认为,他们可以安全地选择维护和安全更新,并让他们的网站执行“在您睡觉时进行更新”,正如 3.7 版本发布的帖子所描述的那样。

“不安全的网站很糟糕,但可以说,回顾性地扩大这种机制赋予自己的权力更糟糕,”UpdraftPlus 的创建者大卫安德森说。 “它可能比​​不安全更损害信任+声誉。 我会争辩说,旧版本的巨大仪表板丑陋,不可移动的通知警告即将被放弃+需要更新会更好。 让网站所有者承担责任。 不要扮演保姆,滥用信任,破坏网站,然后写博客文章说明这是如何造成必要的附带损害。 醒来发现网站损坏的人不会对此感到高兴。”

WordPress 3.7 发布负责人、WordPress 自动后台更新功能的合著者 Andrew Nacin 鼓励提案背后的人澄清 WordPress 仅支持最新的主要版本,从未正式支持旧版本。

“当然,向后移植需要做很多工作,”Nacin 说。 “但我们仍然应该坚持我们的北极星,那就是 WordPress 从一个版本到另一个版本是向后兼容的,WordPress 用户不应该担心他们运行的是什么版本,我们应该让网站保持最新,如果我们能。”

Nacin 提供了有关引入自动更新的原始策略的更多背景信息,其中包括逐渐将主要版本作为自动更新,以便所有站点最终都使用最新版本:

首先,当我们第一次发布自动后台更新时,我们认为我们的下一个重大推动将是在未来几年内推出主要版本的自动更新。 在实践中,我们可以随时执行此操作,并且确实,3.7 支持此作为标志。 但我们的想法是我们会在沙盒、白屏保护、改进回滚功能等方面投入精力,因此我们的主要版本的成功率与次要版本一样高。 (失败率与需要复制的文件数量呈线性关系,当需要添加文件而不是仅仅更改文件时也会变得更加复杂。)一旦我们这样做了,我们只需开始更新所有站点到最新版本并停止向后移植。 显然我们还没有到达这里。

他评论说,总体而言,该提案是“一个伟大的计划”,但强调了向用户传达更新安全且 WordPress 仅打算支持最新版本的好处。

讨论中的大多数参与者都支持安全团队停止对旧版本的 WordPress 进行反向移植修复。 反对者仍然没有回答的问题是,为什么 WordPress 有责任强制旧网站进行更新。

“我不认为 WordPress 决定将他们无法管理的网站更新到主要/破坏版本,但我认为应该停止维护这些分支,”Will Stocks 说。 “您(WordPress)不拥有基础设施或业务流程,也不了解管理这些站点的现有支持。 这些网站今天仍在使用该版本并且过去没有升级也是有原因的。”

还有其他方法仍然可以划清界限以尊重安全团队的有限资源,而不会强制对主要版本进行任何未经同意的更新。 WPCampus 的主管 Rachel Cherry 对该提议发表了评论,强烈敦促 WordPress 在更新这些网站之前征得同意:

我们正在研究强制更新是否会导致技术问题并完全忽略真正的问题。

我们正在讨论在人们未经同意的情况下强制更新他们的软件。

为了什么目的? 这里真正的问题是什么? 因为我们不想担心更新旧版本?

还有其他方法可以解决这个问题。

我们可以针对版本的 EOL 支持制定明确的政策。

我们可以向核心添加一个设置,让用户选择他们是否想要自动更新并继续前进,这是决策者。 然后我们就同意了。

我们可以就更新进行教育和交流。

我们可以向人们发送电子邮件,告知他们的网站已过时且不安全,他们应尽快更新,并附上教育和最佳实践的链接。 如果他们仍然需要帮助,鼓励他们联系专业人士。

我们可以解决这个问题以便继续前进,但我们没有暗示追溯同意,因为我们从未设置许可机制。

如果有人没有更新他们的网站,他们这样做是有原因的。 或者冷漠。 无论哪种方式,我们都没有权利像这样进入并修改人们的网站。

讨论的参与者仍在努力解决拟议政策变化的潜在影响。 小更新已被证明是非常可靠的自动更新。 Dunn 报告说 3.7.29 自动更新只有一次失败,必须回滚到 3.7.28。 使用自动更新系统将主要更新推送到旧网站尚未经过彻底测试。

“无论我们是否自动更新 3.7 -> 5.x 版本,我都完全支持明确说明这是我们希望在未来(5.x -> x.x+)开始做的事情,”Jeremy Felt对该提案发表了评论。 “测试基础设施和支持这一点的代码的工作绝对应该以任何一种方式完成。” Felt 还表示,他对提议的版本的交错推出计划以及提供官方支持的插件以禁用自动更新的计划表示赞赏。

关于该提案的讨论仍在进行中,但到目前为止,参与者之间似乎存在根本分歧,即 WordPress 是否有权在未经明确同意的情况下强制进行主要版本更新,即使这是为了避免网站所有者被黑客入侵.

“有一点是肯定的,到目前为止,这似乎是大多数人的关注点,虽然我们中的许多人都喜欢这些崇高的意图,但我不确定成为互联网的仁慈霸主是否是 WP 前进的好形象,”插件开发人员 Philip Ingram 说。