WordPress 6.2.1 于昨天发布,并推出到启用了自动后台更新的站点。该更新包括五个重要的安全修复程序。通常,可以相信维护和安全版本不会破坏网站,但在 6.2.1从块模板中删除 Shortcode(简码,也称之为 短代码)支持后,许多用户都在苦苦挣扎。
跟踪损坏的短代码问题的支持论坛线程表明,此更改会影响插件显示面包屑、时事通讯注册表单、WPForms、Metaslider、bbPress 内容等内容的方式。该问题影响模板块,而不影响使用非 FSE 主题的站点。
“在我看来,简码已被设计删除,这绝对是疯了!” @camknight在支持论坛讨论中说。“我们机构的每个 FSE 站点都在模板中使用短代码块来处理所有内容:过滤器、搜索、ACF 和插件集成。这是混乱!!”
另一位用户@asjl报告称此更新破坏了数百页。
“我在 600 多个页面上遇到了同样的问题,这些页面使用了五六个不同的模板,一个网站的每个模板都有短代码,而在其他几个网站上也有类似的问题,” @asjl说。
“我期待着编辑这些页面中的每一个以将短代码恢复到位。或者回溯到 6.2 并关闭更新。”
目前尚不清楚为什么块主题模板部分中的短代码块仍然有效,但这是向用户建议的一种解决方法。在针对该问题的 trac票证中,其他人建议将名为“Shortcode Fix”的插件的 PHP 文件添加到插件文件夹中,但此解决方法会重新引入安全问题。
其他用户被迫恢复到以前不安全的 WordPress 版本,以保持其网站上的关键功能正常运行。WordPress 开发人员 Oliver Campion 在 Trac 票证上评论了有关网站当前如何在模板中使用短代码的更多详细信息:
这次更新简直就是一场灾难。我不明白为什么没有这种破坏性的自动推出的警告!
我们已设法将受影响的站点回滚到 v6.2 并阻止自动核心更新,直到有合适的解决方案为止,由于报告的安全问题,我们希望这是迫在眉睫的解决方案!
在我们看来,短代码块对于使用块主题的设计过程来说是绝对必要的。
我们使用它们来注入经典菜单,这些菜单可以具有动态菜单项(例如注销)、动态标题内容、专用循环和页脚内容,这些内容就像在版权声明中显示当前年份一样简单,以显示联系表格或其他此类动态内容。这就是我从头顶想到的。
这次更新的一个不幸后果是它摧毁了许多用户对 WordPress 自动更新的信心。这种重大变化永远不会发生在一夜之间自动安装的版本中。
即使绝对有必要避免 WordPress 网站上的零日漏洞,块模板中停止的短代码支持也应该附带更多信息,以帮助受影响的用户找到解决方案。
用户收到的关于此的唯一通信是 6.2.1 发布帖子“阻止主题解析用户生成的数据中的简码”中关于漏洞的简短、不充分的说明。
在严重依赖短代码的网站上修复所有这些短代码的使用对许多人来说已经是一个挑战,即使提前通知也是如此。在没有正确解释它如何影响用户的情况下,在自动更新中发布这一重大变更,只会起到扭转局面的作用。
在今天的核心开发会议上,WordPress 6.2.1 联合发布负责人 Jb Audras表示,这个问题可能会促使 6.2.2 快速发布,但细节尚未公布。
“你可能知道,一个安全修复导致了模板中使用的短代码的一个重要问题,”Audras 说。“安全编辑团队目前正在积极讨论这个问题,并且已经做出一些假设以在快速的后续版本中解决这个问题。
“目前没有可用的时间表——这将取决于编辑团队目前讨论的后续补丁。”
与此同时,那些无法采用变通办法并希望回滚到 6.2 的人可以使用WP Downgrade插件作为临时修复,因为在永久解决方案到位之前,这会使站点容易受到攻击。