应用AC-384__Fix_Incompatible_PHP_Method__2.4.3_ce.patch解决升级时PHP出现的严重错误

在升级到Magento Open Source2.4.3的过程中可能会出现以下致命错误:

PHP Fatal error: Uncaught Error: Call to undefined function Magento\Framework\Filesystem\Directory\str_contains() in [...]/magento/vendor/magento/framework/Filesystem/Directory/DenyListPathValidator.php:74

此错误是由于使用str_contains函数导致的,该函数是一个PHP 8.x函数。 应用程序Open Source 2.4.3不支持PHP 8.x。此修补程序将此函数替换为支持的PHP 7.x函数。 请参阅Adobe Commerce升级2.4.3、2.3.7-p1 PHP致命错误修补程序知识库文章。

高亮

在此版本中查找以下要点。

显着的安全增强功能

此版本包括33项安全修复和平台安全改进。 其中许多安全修复已回溯到2.4.2-p2和2.3.7-p1。

三十三项安全增强功能,可帮助消除远程代码执行(RCE)和跨站点脚本(XSS)漏洞

到目前为止,尚未发生与这些问题相关的已确认攻击。 但是,可能会利用某些漏洞访问客户信息或接管管理员会话。 这些问题中的大多数要求攻击者首先获得对管理员的访问权限。 列入允许列表因此,我们提醒您采取一切必要步骤来保护您的管理员,包括但不限于:IP身份验证、双重身份验证、使用VPN、使用唯一位置而非/admin以及良好的密码卫生。 有关这些已修复问题的讨论,请参阅Adobe安全公告

其他安全增强功能

此版本的安全改进改进了与最新安全最佳实践的符合性,包括:

  • 新Composer插件 ​有助于防止依赖关系混淆,并识别与公共包存储库上的内部包同名的恶意包。 请参阅Adobe发布包含2.4.3版本的新编辑器插件。

  • 速率限制现已内置到API ​中,以防止拒绝服务(DoS)攻击。 Web API现在对客户端可请求的资源大小或数量施加限制(默认最大值为20,并可根据业务需求配置为其他值)。 有关配置这些限制的信息,请参阅速率限制

  • ReCAPTCHA覆盖范围已扩展 ​以包括:

    • ReCAPTCHA涵盖具有相应HTML页的Web API。 (这不包括通过集成访问的Web API。) ReCAPTCHA覆盖范围可保护端点免受垃圾邮件攻击。 当使用OAuth的第三方集成服务访问Web API时,ReCAPTCHA被禁用。

    • 下单店面页面和支付相关Web API。 默认情况下,这些页面的ReCAPTCHA保护处于禁用状态,并且可以从管理员中启用。 此报道添加了一种反暴力机制,以保护商店免受梳理攻击。

注意
从2.3.2版本开始,我们将分配并发布索引式常见漏洞和暴露(CVE)编号,其中会包含外部方报告给我们的每个安全错误。 这使用户能够更轻松地识别其部署中未解决的漏洞。 您可以在CVE了解有关CVE标识符的更多信息。

基础架构改进

此版本包含可提高框架质量和以下功能区域的增强功能:

  • 客户帐户

  • 目录

  • CMS

  • OMS

  • 导入/导出

  • 促销和定位

  • 购物车和结账

  • B2B

  • 暂存和预览

包含PayPal的部署现在支持​ PayPal Pay Later。 此功能允许购物者以每两周一次分期付款的方式支付订单,而不是在购买时支付全额。

use_application_lock索引模式use_application_lock模式允许您通过使用环境变量或通过配置app/etc/env.php文件来启用重新索引。 启用此模式后,在失败后不再需要手动重置索引器。 请参阅对重新索引进程使用应用程序锁定模式

平台增强功能

版本2.4.3尚未与PHP 8.x兼容,但下面的平台升级使我们更接近将来与PHP 8.x兼容的程度。

  • 核心编辑器依赖项和第三方库已升级到与PHP 8.x兼容的最新版本。

  • KnokoutJS库已升级到v3.5.1(最新版本)。

  • 已弃用的TinyMCE v3库已删除。 已从Adobe Commerce中删除与TinyMCE v3.x相关的Magento_Tinymce3Banner模块和MFTF测试。

  • Magento Open Source2.4.3已经过测试,并已确认与Redis 6.0.12兼容。 (版本2.4.x仍与Redis 5.x兼容。)

  • Laminas库依赖项已升级到PHP 8.x兼容版本。 已从composer.json文件中删除一些多余的依赖项。 Magento Open Source2.4.3使用Laminas 3.4.0

性能增强

此版本包括一些增强功能,它们缩短了产品价格和目录规则索引器的索引时间。 商家现在可以从客户组或共享目录中排除网站,这减少了用于索引的记录数量并缩短了索引时间。

Adobe Stock集成

此版本包括Adobe Stock集成v2.1.1。

GraphQL

此版本添加了共享路由的GraphQL覆盖范围。 路由查询RoutableInterface支持产品、类别和CMS页面上的路由请求。 urlResolver查询已弃用,其功能已被route查询取代。

有关这些增强功能的详细信息,请参阅GraphQL开发人员指南

页面生成器

Page Builder现在作为Magento Open Source中的捆绑扩展提供。 它现在是Adobe Commerce 2.4.3和Magento Open Source2.4.3的默认内容编辑工具。它可以用任何第三方模块替换WYSIWG编辑器。

Page Builder在以下“管理”区域中取代了TinyMCE编辑器:

  • CMS页面
  • CMS块
  • 类别描述
  • 产品描述

在TinyMCE中创建的所有内容已作为HTML迁移到页面生成器中。

PWA Studio

有关增强功能和错误修复的信息,请参阅PWA Studio版本。 有关PWA Studio版本及其兼容版本的列表,请参阅兼容性

升级兼容性工具

升级兼容性工具的范围已根据社区的反馈进行了扩展。 加入我们的#upgrade-compatibility-toolSlack渠道,获得Adobe产品团队和社区的支持,并帮助指导该工具的未来方向。

供应商开发的扩展

有关此版本功能和更改的更新,请参阅以下文章:

修复的问题

我们已在2.4.3核心代码中修复了数百个问题。

安装、升级、部署

  • 现在,bin/magento setup:db:status命令会返回一条消息,指示在成功升级后一切都是最新的。 以前,应用程序显示此错误: Declarative Schema is not up to date
  • 现在,当创建新可配置产品失败时,在表单重新加载时会保留配置值。 以前,在重新加载表单时丢失值,应用程序显示此错误: The value specified in the URL Key field would generate a URL that already existsGitHub-32102
  • 当您运行bin/magento setup:upgrade从具有Redis的Magento Open Source部署升级到Adobe Commerce时,应用程序不再引发异常。
  • 在Galera群集上运行的部署现在支持更多客户。 GitHub-31038
  • 现在,当应用程序安装在core_config_data_table中的—use-rewrites=0选项或web/seo/use_rewrites设置为0时,管理员可以成功登录到部署。 GitHub-32100
  • 已更新AsyncCssPluginsortOrder加载。 应用程序现在在JsFooterPlugin之前加载AsyncCssPluginGitHub-30882
  • Magento\Config\Model\Config\PathValidator现在检查显示路径以确定元素是否存在,如果它有配置路径,则使用config.xml路径进行验证。 GitHub-27678
  • 使用Grunt或服务器端编译编译的Less文件现在会产生相同的结果。 以前。 使用Grunt编译时,扩展_extends.less中其他.abs- styles.abs- styles未正确输出。 这导致了生产部署与开发部署之间的差异。 GitHub-7231