SUPEE-10975潜在问题


16

SUPEE-10975已发布,很高兴知道在尝试应用此程序时是否有人遇到任何问题,这是否与最新的添加7.2支持的修补程序发生冲突?

到目前为止,这些是我可以看到的更改文件

app/code/core/Mage/Adminhtml/Block/Customer/Group/Edit.php
app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Edit.php
app/code/core/Mage/Adminhtml/controllers/Cms/BlockController.php
app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php
app/code/core/Mage/Adminhtml/controllers/SitemapController.php
app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
app/code/core/Mage/Captcha/Model/Observer.php
app/code/core/Mage/Captcha/Model/Zend.php
app/code/core/Mage/Captcha/etc/config.xml
app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php
app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php
app/code/core/Mage/Core/etc/config.xml
app/code/core/Mage/Core/sql/core_setup/upgrade-1.6.0.7.1.1-1.6.0.7.1.2.php
app/code/core/Mage/Dataflow/Model/Convert/Container/Abstract.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Customer.php
app/code/core/Mage/ImportExport/Model/Import/Entity/Customer/Address.php
app/code/core/Mage/Payment/etc/config.xml
app/code/core/Mage/Payment/etc/system.xml
app/code/core/Mage/Payment/sql/payment_setup/upgrade-1.6.0.0.1.1-1.6.0.0.1.2.php
app/code/core/Mage/Sendfriend/Block/Send.php
app/code/core/Mage/Wishlist/controllers/IndexController.php
app/code/core/Zend/Controller/Request/Http.php
app/design/adminhtml/default/default/template/cms/browser/content/files.phtml
app/design/frontend/base/default/layout/captcha.xml
app/design/frontend/base/default/template/wishlist/sharing.phtml
app/design/frontend/rwd/default/layout/page.xml
app/design/frontend/rwd/default/template/sendfriend/send.phtml
app/etc/modules/Mage_All.xml
app/etc/modules/Mage_Captcha.xml
app/locale/en_US/Mage_Wishlist.csv
js/lib/jquery/jquery-1.12.0.js
js/lib/jquery/jquery-1.12.0.min.js
js/lib/jquery/jquery-1.12.0.min.map
js/lib/jquery/jquery-1.12.1.js
js/lib/jquery/jquery-1.12.1.min.js
js/lib/jquery/jquery-1.12.1.min.map

有没有人遇到这些更改的任何问题?

Answers:


12

到目前为止,我遇到了SUPEE-10975修补程序的以下问题:

  • 由于新方法中缺少返回语句Mage_Adminhtml_Block_Customer_Group_Edit::getDeleteUrl(@ mikhail-chelevich发现),因此不再可能通过管理员删除客户组。这是为管理员启用私钥的情况,这是默认设置。1.9.4.0中也存在此问题。SUPEE-11043补丁已修复此问题,该补丁尚未正式发布,但可以作为GitHub Gist使用
  • 如果Mage_Sendfriend不同时禁用该模块,则无法禁用该Mage_Captcha模块。否则,将发生以下核心异常:(Module "Mage_Captcha" requires module "Mage_Sendfriend".由@zlep找到)
  • sendfriend/send.phtmlrwd/default主题中对模板所做的更改未在base/default主题中进行。这意味着对于base/default主题,无法启用CAPTCHA,并且该页面上也不会显示先前输入的收件人的姓名和电子邮件(对于表单提交的典型情况,它会触发服务器端验证错误)。
  • 新方法Mage_Sendfriend_Block_Send::getRecipientsCount引入了PHP 7.2不兼容性,因为countNULL没有任何收件人的情况下加载页面时,将对值执行a (这是新页面加载时的默认值)。此问题已在1.9.4.0中修复。

请注意,我仅检查了1.9.3.10的补丁程序,但我怀疑该补丁程序的所有版本中都存在此问题。


11

缺少return parent::getDeleteUrl()在app /代码/核心/法师/ Adminhtml /座/客户/组/ Edit.php

+    public function getDeleteUrl()
+    {
+        if (!Mage::getSingleton('adminhtml/url')->useSecretKey()) {
+            return $this->getUrl('*/*/delete', array(
+                $this->_objectId => $this->getRequest()->getParam($this->_objectId),
+                'form_key' => Mage::getSingleton('core/session')->getFormKey()
+            ));
+        } else {
+            parent::getDeleteUrl();
+        }
+    }

这是什么Magento版本?
danmentzer

1
我可以确认此问题:无法再通过管理员删除客户组。为管理员启用私钥(默认情况)时,会发生这种情况。它存在于SUPEE-10975补丁程序以及Magento Open Source 1.9.4.0中。
Aad Mathijssen

已创建一个额外的补丁程序来解决此SUPEE-11043
Andrew

@andrew我找不到关于SUPEE-11043的任何信息。您可以链接一些资源吗?
darnok '18

1
所以修复应更换parent::getDeleteUrl();在app /代码/核心/法师/ Adminhtml /座/客户/组/ Edit.php用return parent::getDeleteUrl();
勒内Schep

8

我遇到了10975补丁程序的问题。经过一番调查,我能够找到有关修补程序混乱的原因以及原因的答案。

总结以下检查,并确保正确修补了SUPEE 9767 V2。那是我问题的根源。

sh PATCH_SUPEE-10975_EE_v1.12.0.2_v1-2018-11-27-10-36-30.sh
Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

patching file app/code/core/Enterprise/PageCache/Model/Processor.php
Hunk #1 succeeded at 690 (offset -3 lines).
patching file app/code/core/Enterprise/Pci/etc/config.xml
patching file app/code/core/Enterprise/Wishlist/Block/Customer/Sharing.php
patching file app/code/core/Mage/Adminhtml/Block/Customer/Group/Edit.php
patching file app/code/core/Mage/Adminhtml/Block/Newsletter/Template/Edit.php
patching file app/code/core/Mage/Adminhtml/controllers/Cms/BlockController.php
patching file app/code/core/Mage/Adminhtml/controllers/Customer/GroupController.php
patching file app/code/core/Mage/Adminhtml/controllers/SitemapController.php
patching file app/code/core/Mage/Adminhtml/controllers/System/BackupController.php
patching file app/code/core/Mage/Captcha/Model/Observer.php
patching file app/code/core/Mage/Captcha/Model/Zend.php
patching file app/code/core/Mage/Captcha/etc/config.xml
patching file app/code/core/Mage/Catalog/Model/Api2/Product/Image/Rest/Admin/V1.php
patching file app/code/core/Mage/Catalog/Model/Product/Attribute/Media/Api.php
patching file app/code/core/Mage/Cms/Model/Wysiwyg/Images/Storage.php
patching file app/code/core/Mage/Core/etc/config.xml
Hunk #1 FAILED at 28.
1 out of 3 hunks FAILED -- saving rejects to file app/code/core/Mage/Core/etc/config.xml.rej
patching file app/code/core/Mage/Core/sql/core_setup/upgrade-1.6.0.2.1.2-1.6.0.2.1.3.php
patching file app/code/core/Mage/Dataflow/Model/Convert/Container/Abstract.php
patching file app/code/core/Mage/ImportExport/Model/Import/Entity/Customer.php
patching file app/code/core/Mage/ImportExport/Model/Import/Entity/Customer/Address.php
patching file app/code/core/Mage/Payment/etc/config.xml
patching file app/code/core/Mage/Payment/etc/system.xml
patching file app/code/core/Mage/Payment/sql/payment_setup/upgrade-1.6.0.0.1.1-1.6.0.0.1.2.php
patching file app/code/core/Mage/Wishlist/controllers/IndexController.php
patching file app/code/core/Zend/Controller/Request/Http.php
patching file app/design/adminhtml/default/default/template/cms/browser/content/files.phtml
patching file app/design/adminhtml/default/default/template/enterprise/cms/page/preview/revision.phtml
patching file app/design/adminhtml/default/default/template/enterprise/customersegment/report/detail/grid/container.phtml
patching file app/design/adminhtml/default/default/template/enterprise/giftregistry/customer/form.phtml
patching file app/design/adminhtml/default/default/template/enterprise/staging/log/information/merge.phtml
patching file app/design/adminhtml/default/default/template/enterprise/staging/log/information/rollback.phtml
patching file app/design/frontend/base/default/layout/captcha.xml
patching file app/design/frontend/base/default/template/wishlist/sharing.phtml
patching file app/design/frontend/enterprise/iphone/template/downloadable/sales/order/creditmemo/items/renderer/downloadable.phtml
patching file app/etc/modules/Mage_All.xml
patching file app/etc/modules/Mage_Captcha.xml
patching file app/locale/en_US/Enterprise_Wishlist.csv
patching file app/locale/en_US/Mage_Wishlist.csv
patching file js/enterprise/adminhtml/staging.js

上面是我遇到的错误,该错误特定于此文件。

法师/核心/etc/config.xml

错误来自修补程序的这一行。

diff --git app/code/core/Mage/Core/etc/config.xml app/code/core/Mage/Core/etc/config.xml
index 4aebdcdc2cf..4b28f2765a1 100644
--- app/code/core/Mage/Core/etc/config.xml
+++ app/code/core/Mage/Core/etc/config.xml
@@ -28,7 +28,7 @@
 <config>
     <modules>
         <Mage_Core>
-            <version>1.6.0.2.1.2</version>
+            <version>1.6.0.2.1.3</version>
         </Mage_Core>
     </modules>
     <global>

由于手动修补,此处列出的版本不正确匹配

SUPEE 9767 v2

该修补程序附带了我在手动修补时错过的这一行。

diff --git app/code/core/Mage/Core/etc/config.xml app/code/core/Mage/Core/etc/config.xml
index 4a0ff1b..d0de702 100644
--- app/code/core/Mage/Core/etc/config.xml
+++ app/code/core/Mage/Core/etc/config.xml
@@ -28,7 +28,7 @@
 <config>
     <modules>
         <Mage_Core>
-            <version>1.6.0.2</version>
+            <version>1.6.0.2.1.2</version>
         </Mage_Core>
     </modules>
     <global>

5

首先,对erej的回答重复感到抱歉,由于我的声誉得分,我无法评论或编辑。

补丁程序在这里创建一个新文件: app/code/core/Zend/Controller/Request/Http.php

添加该文件以覆盖此文件: lib/Zend/Controller/Request/Http.php

问题是Magento在1.9.0.0(EE 1.14.0.0)以下:

此方法:

/**
 * Everything in REQUEST_URI before PATH_INFO
 * <form action="<?=$baseUrl?>/news/submit" method="POST"/>
 *
 * @return string
 */
public function getBaseUrl($raw = false)
{
    if (null === $this->_baseUrl) {
        $this->setBaseUrl();
    }

    return (($raw == false) ? urldecode($this->_baseUrl) : $this->_baseUrl);
}

在Magento Core文件中被覆盖 app/code/core/Mage/Core/Controller/Request/Http.php

public function getBaseUrl()
{
    $url = parent::getBaseUrl();
    $url = str_replace('\\', '/', $url);
    return $url;
}

不需要任何参数。

因此,它会在任何网站url,front和admin上发出此严格通知:

Strict Notice: Declaration of Mage_Core_Controller_Request_Http::getBaseUrl() should be compatible with Zend_Controller_Request_Http::getBaseUrl($raw = false) in /var/www/htdocs/app/code/core/Mage/Core/Controller/Request/Http.php on line 36

如果有人知道该补丁的任何V2即将发布,请告诉我。

等待它们的更新,您可以app/code/core/Mage/Core/Controller/Request/Http.php像这样重新定义方法:

/**
 * @param bool $raw - Added manually to correct SUPEE-10975 oversight
 *      See /magento/251317/supee-10975-potential-issues
 *      for more information
 *
 * @return mixed|string
 */
public function getBaseUrl($raw = false)
{
    $url = parent::getBaseUrl($raw); // Argument added manually to correct SUPEE-10975 oversight
    $url = str_replace('\\', '/', $url);
    return $url;
}

4

在应用此修补程序后的1.8.1.0版中,我们还必须将app/code/core/Mage/Core/Controller/Request/Http.php::getBaseUrl()功能更改 为

public function getBaseUrl($raw = false)
{
    $url = parent::getBaseUrl($raw);
    $url = str_replace('\\', '/', $url);
    return $url;
}

因为此修补程序会添加app/code/core/Zend/Controller/Request/Http.php文件,并且getBaseUrl()函数使用parameter声明$raw = false


不必添加此功能。它将始终默认为不原始,因为任何调用此函数的功能都不应在1.8.1中设置$ raw。
勒内Schep

4

我遇到“ 28岁​​的Hunk#1失败”的问题

拒绝被保存到config.xml.rej中,但是此文件不存在,在终端窗口中也没有描述脚本的哪一部分失败。基本上,补丁程序失败了,也没有迹象表明原因-至少不是像我这样的笨蛋!

在首次运行时,该修补程序试图删除三个不存在的jquery v 1.12.0文件,我替换了这些文件并再次应用了该修补程序,但是现在失败了,没有任何有用的描述。

Magento 1.9.0.1已与PHP 7.2兼容性更新完全修补,除非我可以解决它,否则此处的任何人都可以给我一个提示(请!),否则它将保持未修补状态。

PS:我不确定我的帖子是否违反SE准则,我在回答原始问题,但我也在寻求帮助。


1
我也遇到了这个问题,它与9767 v2补丁有关,它向Mage / Core / etc / config.xml添加了一个新版本号。您只需要在当前版本号上添加.1.2,我也会写一个答案。
danmentzer

3

Mage_Backup补丁将禁用模块。

官方发行说明(https://devdocs.magento.com/guides/m1x/ce19-ee114/ce1.9_release-notes.html#ce19-1940)中。

但是,建议的重新启用解决方案是错误的:

(“或者,您可以使用这两种方法之一来启用数据库备份”)

实际上,您实际上需要使用上述两种方法来完全重新启用它。


2
还要记住,重新启用Mage_Backup模块会使您面临以下挑战:“远程代码执行(RCE),跨站点脚本(XSS)和跨站点请求伪造(CSRF)问题”。
勒内Schep

2

正确处理税收计算可能会出现问题。

由于在许多国家的习惯,我们的客户使用“ 价格包括税 Magento ”配置。

因此,从1.9.3.10更新到1.9.4.0后,税款已添加到结帐的总计中,除了已经包含税款的商品价格之外。

我将问题归结为app / code / core / Mage / Sales / etc / config.xml文件中的配置更改,其中“ msrp ”已添加到节点sales / quote / totals / shipping / after中

我没有在发行说明中找到有关MSRP的任何内容,希望这是一个独立的更改,没有任何副作用。

我的解决方案是将此节点改回其原始值“ 小计,免费送货,tax_subtotal ”,而不使用“ msrp ”。我是在我自己的模块的etc / config.xml中这样做的。


1

特定的问题,但是,如果禁用了Mage_Sendfriend(以前可以安全地禁用它,以前是一个模块),它将引发异常错误。


1
他们使Mage_Captcha依赖于Mage_Sendfriend,而不是其他方式。因此,您还需要停用Mage_Captcha以禁用Mage_Sendfriend。这可能不是您想要的,因为它禁用了所有Magento默认的
Recaptcha

0

我今天尝试从Magento CE 1.9.3.10升级到1.9.4.0,但遇到多个错误。幸运的是,它并没有搞乱安装。安装后,我得到了可怕的-内部服务器错误。我确实被锁定了,我不得不通过SSH重置所有文件和文件夹权限,同时删除了maintenance.flag。然后,我重新索引并重新启用了缓存。另外,我还必须还原到“根与下载”文件夹中的旧.htaccess文件。不知道应该采取什么纠正措施才能成功安装。我忘了从命令行窗口复制文本。因此,我无法发布所有错误。我看到的是不兼容的消息。


1
我认为通过下载器进行的“升级”方法在至少经过一点编辑的任何安装上都无法使用。我疯了吗?
卡尔文·克莱恩

使用Magento Connect的“升级”方法对我来说每一次都有效。我将其用于我们的三个M1站点,并且都对它们进行了大量(尽管正确)定制。
MagentoAaron

0

他们是否删除了计划备份? 没有预定的备份部分

还是我有某种问题?为什么在任何说明中都没有提到这一点?这似乎是Magento的一种模式,当更新发布时,他们没有提及此类更改。

更新:看起来他们完全从所有版本中删除了它。

更新:必须做不同的备份。如果有人感兴趣,我会在这里发布一些CRON命令:SUPEE-10975的备份策略?


这是任何特定版本的吗?
Razentic

2
Per twitter.com/ryanhoerr/status/1067819214314987520这是他们在此补丁程序中删除的特定部分。
danmentzer

哦,天哪...好经典-必须从其他来源(然后从magento处)找到有关删除/添加功能的信息。
卡尔文·克莱恩

1
@KalvinKlien实际上,发行说明的第一段指出它已被停用;devdocs.magento.com/guides/m1x/ce19-ee114/...
彼得·夏侯Blaakmeer

3
此补丁中的更改是,默认情况下Mage_Backup被禁用,并且对代码运行的检查更加严格(例如,如果模块的块输出被禁用,则备份将不会运行)。您仍然可以通过在app / etc / modules / Mage_All.xml的Mage_Backup部分中将false更改为true来手动重新启用模块。请注意,重新启用备份功能可能会导致:“远程代码执行(RCE),跨站点脚本(XSS)和跨站点请求伪造(CSRF)问题”。
勒内Schep

0

我们在以前的开发人员使用自定义多商店配置的网站上看到一个问题。除基本商店外,所有商店的URL均为404ing。它设置了“ HTTP_X_REWRITE_URL”服务器变量/ HTTP标头,它更改了Magento请求所处理的URL。

\ Zend_Controller_Request_Http :: setRequestUri()已使用此变量,但app / code / core / Zend / Controller / Request / Http.php中的新版本不再使用此变量。可能的修复是:

  • 将$ _SERVER [“ IIS_WasUrlRewrite”]设置为'1',而是将$ _SERVER [“ UNENCODED_URL”]设置为
  • 改为设置$ _SERVER [“ REQUEST_URI”]

两种方法都可能起作用,但是前者的功能更接近于先前的系统,因此可能不会产生意想不到的后果。


0

付款方式的特定错误不可用

The requested Payment Method is not availableMagento抛出了很多错误。产品退货中使用付款方式的所有订单,ccsave此收货人已在中将其删除config.xml

之所以引发该错误,是因为Magento $key通过检查xml路径来寻找(在这种情况下,付款方式为ccsave)payment/ccsave/model。如果找不到,则会引发错误。因此,我们只是做了一个git checkout [insert supee commit]^ app/code/core/Mage/Payment/etc/config.xml并推动精通该错误。

应用程序/代码/核心/法师/付款/助手/Data.php

public function getMethodInstance($code)
{
    $key = self::XML_PATH_PAYMENT_METHODS.'/'.$code.'/model';
    $class = Mage::getStoreConfig($key);
    return Mage::getModel($class);
}

app / code / core / Mage / Payment / etc / config.xml

<default>
  <payment>
      <ccsave>
        <model>payment/method_ccsave</model>
      </ccsave>
  </payment>
  ...
</default>


-5

可能不是,但是无论如何都已经实现了1.9.4.0版


1
这些堆栈文章是专门为使其他开发人员可以知道的问题,您对此的回答对任何问题都没有帮助或无法描述。老实说,我将其删除。
danmentzer
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.