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

Кто-нибудь сталкивался с какими-либо проблемами с этими изменениями?

Ответы:


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.phtmlшаблоне, внесенные в rwd/defaultтему, не вносятся в base/defaultтему. Это означает, что для base/defaultтемы CAPTCHA нельзя включить, а также что имена и электронные письма ранее введенных получателей не показываются на странице (для типичного случая отправки формы, которая вызывает ошибку проверки на стороне сервера).
  • Новый метод Mage_Sendfriend_Block_Send::getRecipientsCountвводит несовместимость PHP 7.2, потому что при загрузке страницы без каких-либо получателей countвыполняется NULLзначение a (что по умолчанию при загрузке новой страницы). Эта проблема была исправлена ​​в 1.9.4.0.

Обратите внимание, что я проверил патч только для 1.9.3.10, но я подозреваю, что проблемы присутствуют во всех версиях патча.


11

Отсутствует return parent::getDeleteUrl()в app / code / core / Mage / Adminhtml / Block / Customer / Group / 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.
Аад Матейссен

Для исправления этого SUPEE-11043 был создан дополнительный патч
Andrew

@andrew Я ничего не могу найти о SUPEE-11043. Можете ли вы связать некоторые источники?
Дарнок

1
Таким образом, исправление должно быть parent::getDeleteUrl();заменено в app / code / core / Mage / Adminhtml / Block / Customer / Group / Edit.php наreturn parent::getDeleteUrl();
Рене Шеп

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

Выше приведена ошибка, характерная для этого файла.

Маг / Ядро / и т.д. / 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 сайта, фронте и администраторе:

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()функция объявляется с параметром $raw = false.


Не должно быть необходимости добавлять эту функцию. По умолчанию он всегда будет не необработанным, потому что для любой функциональности, вызывающей эту функцию, не следует устанавливать $ raw в 1.8.1.
Рене Шеп

4

У меня есть проблема с 'Hunk # 1 FAILED at 28'

Отклонения якобы сохраняются в config.xml.rej, но этот файл не существует, а также нет описания того, какая часть скрипта завершилась неудачно в моем окне терминала. По сути, патч не работает, и нет никаких признаков, почему - по крайней мере, не тупица, как я!

При первом запуске патч попытался удалить три несуществующих файла jquery v 1.12.0, я заменил их и применил патч снова, но теперь он не работает без какого-либо полезного описания.

Magento 1.9.0.1 полностью исправлен, кроме обновления совместимости с PHP 7.2, он останется без исправлений, если я не смогу его решить, или кто-то здесь может дать мне подсказку (пожалуйста!) Спасибо H

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)».
Рене Шеп

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
Рене Шеп

0

Я попытался обновить Magento CE 1.9.3.10 до 1.9.4.0 сегодня, и у меня было несколько ошибок. К счастью, это не испортило установку. После установки я получил страшную внутреннюю ошибку сервера. Я был заблокирован, и мне пришлось сбросить все мои права доступа к файлам и папкам через SSH вместе с удалением maintenance.flag. Затем я переиндексировал и снова включил кеш. Плюс мне пришлось вернуться к моему старому файлу .htaccess в папке Root and Download. Не уверен, что корректирующее действие должно быть, чтобы получить успешную установку. Я забыл скопировать текст из окна командной строки. Поэтому я не могу опубликовать все ошибки. То, что я видел, было несовместимыми сообщениями.


1
Я не думаю, что метод «обновления» через загрузчик когда-либо работал на любой установке, которая хотя бы немного отредактирована. Я сумасшедший?
Калвин Клиен

Метод «обновления» с использованием Magento Connect работает каждый раз для меня. Я использую его для всех трех наших сайтов M1, и все они сильно (хотя и правильно) настроены.
MagentoAaron

0

Они удалили Резервное копирование по расписанию? Раздел резервного копирования по расписанию

Или у меня какая-то проблема? Почему нет упоминания об этом ни в одной из заметок? Это похоже на паттерн с Magento, где они не упоминают подобные изменения при выходе обновлений.

ОБНОВЛЕНИЕ: похоже, что они полностью удалили его из всех версий.

ОБНОВЛЕНИЕ: пришлось делать резервные копии по-другому. Если кому-то интересно, я разместил здесь некоторые команды CRON: Сообщение о стратегии резервного копирования SUPEE-10975?


Это для какой-то конкретной версии?
Разентик

2
За twitter.com/ryanhoerr/status/1067819214314987520 Это особая часть, которую они удалили в этом патче.
danmentzer

О, боже ... хорошо, классика - должен узнать из какого-то другого источника, кроме magento, об удалении / добавлении функций.
Калвин Клиен

1
@KalvinKlien фактически, первый параграф в примечаниях к выпуску заявляет, что это было деактивировано; devdocs.magento.com/guides/m1x/ce19-ee114/…
Питер Яап Блакмир

3
Изменение в этом патче состоит в том, что Mage_Backup по умолчанию деактивирован, а проверки на выполнение кода более строгие (например, если выход блока для модуля деактивирован, резервные копии не будут запускаться). Вы все равно можете вручную включить модуль, изменив значение false на true в разделе Mage_Backup в файле / etc / modules / Mage_All.xml. Будьте внимательны, поскольку повторное включение функции резервного копирования потенциально может привести к: «проблемам с удаленным выполнением кода (RCE), межсайтовым скриптингом (XSS) и подделкой межсайтовых запросов (CSRF)».
Рене Шеп

0

Мы увидели проблему на сайте, который использовал пользовательскую конфигурацию нескольких магазинов от предыдущего разработчика. Все URL для магазинов, кроме основного магазина, были 404ing. Он установил переменную сервера «HTTP_X_REWRITE_URL» / заголовок HTTP, который изменил URL в соответствии с запросом Magento.

Эта переменная используется / использовалась \ Zend_Controller_Request_Http :: setRequestUri (), но новая версия в app / code / core / Zend / Controller / Request / Http.php больше не использует это. Возможные исправления:

  • Установите $ _SERVER ["IIS_WasUrlRewritten"] в '1' и вместо этого установите $ _SERVER ["UNENCODED_URL"]
  • Вместо этого установите $ _SERVER ["REQUEST_URI"]

Любой из них, вероятно, сработает, но у первого, вероятно, будет меньше вероятности непредвиденных последствий, поскольку он функционирует ближе к предыдущей системе.


0

Конкретная ошибка в способе оплаты недоступна

Мы получили много The requested Payment Method is not availableошибок от Magento. Все о заказах, где ccsaveбыл указан способ оплаты при возврате товара , который был удален в этом случае config.xml.

Ошибка бросают потому , что Magento ищет $key(способ оплаты ccsave в данном случае), проверяя пути XML: payment/ccsave/model. Если он не находит его, он выдает ошибку. Так что мы просто сделали git checkout [insert supee commit]^ app/code/core/Mage/Payment/etc/config.xmlи подтолкнули к мастеру, чтобы исправить ошибку.

Приложение / код / ​​ядро ​​/ Mage / Оплата / Helper / Data.php

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

Приложение / код / ​​ядро ​​/ Mage / Оплата / и т.д. / config.xml

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


-5

Вероятно, нет, но версия 1.9.4.0 уже реализовала оба варианта .


1
Эти стековые посты специально предназначены для того, чтобы другие разработчики могли знать о проблемах, на которые ваш ответ не полезен и не описывает их. Я бы честно просто удалил это.
danmentzer
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.