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значенням під час завантаження сторінки без одержувачів (що за замовчуванням для завантаження свіжої сторінки). Ця проблема була виправлена ​​в 1.9.4.0.

Зауважте, що я перевірив лише патч на 1.9.3.10, але підозрюю, що проблеми є у всіх версіях патча.


11

Відсутній return parent::getDeleteUrl()у додатку / код / ​​core / Mage / 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.
Аад Матхійсен

Для вирішення цієї програми SUPEE-11043 створено додатковий патч
Ендрю

@andrew Я не можу знайти нічого про SUPEE-11043. Ви можете зв’язати деякі джерела?
darnok

1
Тож виправлення має бути parent::getDeleteUrl();замінене в застосунку / код / ​​core / Mage / Adminhtml / Block / Customer / Group / Edit.php наreturn parent::getDeleteUrl();
René 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

Вище є помилка, яку я потрапив, яка характерна для цього файлу.

Mage / Core / тощо / 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 ЗНАТИ В 28"

Відхилення нібито зберігаються у 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)".
Рене Шеп

2

Можуть виникнути проблеми з правильним поводженням з обчисленням податку .

Як це прийнято у багатьох країнах, наш клієнт використовує конфігурацію Magento " ціни включають податки ".

Отже, після оновлення з 1.9.3.10 до 1.9.4.0 податок додається до загальної суми в касі, поверх цін на товари, які вже включають податки.

Я відстежив проблему до зміни конфігурації у файлі app / code / core / Mage / Sales / тощо / config.xml , де " msrp " було додано до вузла sales / quota / totals / shipping / after .

Я не знайшов нічого про MSRP у примітках до випуску і сподіваюся, що це поодинокі зміни без будь-яких побічних ефектів.

Моє рішення полягало в тому, щоб повернути цей вузол до його початкового значення " subtotal, freeshipping, 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 разом із видаленням Main.flag. Потім я повторно застосував і знову включив кеш. Плюс мені довелося повернути свій старий файл .htaccess у папці Root and Download. Не впевнений, якими мають бути коригувальні дії для успішної установки. Я забув скопіювати текст з вікна командного рядка. Тому я не можу розмістити всі помилки. Я бачив несумісні повідомлення.


1
Я не думаю, що метод "оновлення" через завантажувач коли-небудь працював над будь-якою установкою, яка хоча б трохи відредагована. Чи я божевільний?
Kalvin Klien

Метод "оновлення" за допомогою Magento Connect працює для мене кожен раз. Я використовую його для всіх трьох наших M1-сайтів, і всі вони (особливо належним чином) налаштовані.
MagentoAaron

0

Чи видалили резервне резервне копіювання? Немає розкладу резервного резервного копіювання

Або у мене якась проблема? Чому про це не згадується жодна з приміток? Це, мабуть, є моделлю з Magento, де вони не згадують таких змін, коли з'являються оновлення.

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

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


Це для будь-якої конкретної версії?
Розентич

2
За twitter.com/ryanhoerr/status/1067819214314987520 Це конкретна частина, яку вони видалили за цим патчем.
danmentzer

О боже ... нормально класика - треба дізнатися з іншого джерела, а потім магенто про видалення / додавання функцій.
Kalvin Klien

1
@KalvinKlien фактично, перший абзац у примітках до випуску зазначає, що його було вимкнено; devdocs.magento.com/guides/m1x/ce19-ee114/…
Peter Jaap Blaakmeer

3
Зміна цього виправлення полягає в тому, що Mage_Backup деактивовано за замовчуванням, а перевірки на виконання коду суворіші (наприклад, якщо вихід блоку для модуля вимкнено, запускається резервне копіювання). Ви все ще можете вручну ввімкнути модуль, змінивши значення false на істинне в розділі Mage_Backup програми / etc / module / Mage_All.xml. Будьте уважні, що повторне ввімкнення функцій резервного копіювання потенційно дозволяє: "віддалене виконання коду (RCE), крос-скрипт-скрипт (XSS) та проблеми підробки міжсайтового запиту (CSRF)".
Рене Шеп

0

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

Цю змінну / використовував \ Zend_Controller_Request_Http :: setRequestUri (), але нова версія в додатку / код / ​​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та підштовхнули майстра виправити помилку.

app / code / core / Mage / Payment / Helper / 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 / тощо / 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.