Патч безпеки SUPEE-8788 - можливі проблеми?


108

Останній патч безпеки Magento 1 SUPEE-8788 містить 17 оновлень APPSEC , тому дуже важливо застосувати його якнайшвидше. З іншого боку, існує багато потенційних перерв на сумісність, і враховуючи історію виправлень за останній рік, я б не застосовував це недбало.

Хороша річ, що цього разу не задіяно шаблонів фронтену, тому, схоже, нам не потрібно латати всі наші теми. Це справедливо лише для Magento 1.8 або новішої версії.

Тим не менш: Чи виникли проблеми із сумісністю або помилки після застосування виправлення?


6
"не задіяні шаблони фронтенду" - це невірно для старих версій Magento. Наприклад, виправлення 1.7.0.2 змінює 9 файлів шаблонів frontend / base / default / default.
Крістоф у Фомані

magento.stackexchange.com/questions/140571/… обманює цей? Можливо, зв’яжіть всю інформацію тут ...
оч.

2
Для тих, хто має проблеми з оновленнями патча .swf, я просто видалив рядки 5951-9818 з патча і вручну видалив файли .swf /skin/adminhtml/default/default/media- оскільки це все-таки робив патч.
Ліам МакАртюр

Не знаю чому, але після встановлення 8788 на 1.8.0.0, патч 7405 звітів як НЕ встановлений. тоді як v1 і v1.1 були встановлені раніше
MagenX

2
@srinivas Ви видалили медіа-папку зі цього контуру шляху / adminhtml / default / default?
Priya Ponnusamy

Відповіді:


107

Важливі примітки

Зауважте, що 1.9.3 відрізняється від 1.9.2.4 + SUPEE-8788. Ось різниця між двома: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

Оновлення 14 жовтня: випущено версію v2 виправлення (див. Нижче) Станом на 13 жовтня, патчі розміром 1,5.x до 1,88x були зняті з веб-сайту Magento через несумісність з попередніми виправленнями (див. Нижче):

https://community.magento.com/t5/Security-Patches/SUPEE-8788-AND-SUPEE-1533-Incompatible-Hunk-error/td-p/50434/highlight/false/page/2

V3 патча

Ця нова версія призначена лише для Magento EE 1.13.0.x

Застосовуйте V3:

  • відновити SUPEE 1533 (якщо встановлено)
  • встановити SUPEE 3941 (якщо він не встановлений)
  • встановити SUPEE 8788 v3

V2 пластиру

Застосувати V2:

  • повернути SUPEE 8788 v1
  • відновити SUPEE 1533 (якщо встановлено)
  • встановити SUPEE 3941 (якщо він не встановлений)
  • встановити SUPEE 8788 v2

DemacMedia розробив корисний скрипт bash для автоматизації процесу вище. Ви можете знайти його тут: https://github.com/DemacMedia/magento-SUPEE8788-patcher

Деталі пластиру

Після закопування в патч ось цікаві частини (виправлення з 1.9.2.4):

  • Mage_Adminhtml_Block_Media_Uploaderбуло замінено Mage_Uploader_Block_Multipleтаким чином, є повний Mage_Uploaderмодуль, який втрачає підтримку Flash . Старий блок тепер застарілий і розширює новий.
  • Тим НЕ менше в відношенні користувача, модуль був перероблений , щоб впоратися з новим без спалаху завантажувача. Він використовується як блок завантаження замість шаблонів.Mage_DownloadableMage_Uploader_Block_Single
  • Після цього зміни, т він SWF файлів skin/adminhtml/default/default/media/flex.swf, skin/adminhtml/default/default/media/uploader.swfі skin/adminhtml/default/default/media/uploaderSingle.swfбув видалений.
  • Контролер видалення адреси тепер захищений ключем форми безпосередньо через getDeleteUrlвідMage_Customer_Block_Address_Book
  • Контролер переваги видалення елемента тепер захищений з формою ключем через getRemoveUrlвідMage_Wishlist_Helper_Data
  • Спосіб оплати Paypal Express тепер гарантує, що електронна пошта клієнта існує в Magento під час перевірки та реєстрації нового користувача. (зрозумійте: новий користувач створюється до того, як нова цитата буде оброблена)
  • Способи оплати за допомогою клієнта cURL / HTTP тепер CURLOPT_SSL_VERIFYHOSTвстановлено 2 (раніше було 0), і CURLOPT_SSL_VERIFYPEERпрапор тепер додається до викликів cURL. Прапор Verify Peer можна ввімкнути / відключити через конфігурацію способу оплати через спадне меню Enable SSL Verification.
  • Mage_Http_Client_Curlтепер CURLOPT_SSL_VERIFYPEERвстановлено значення true (раніше було помилковим) , будьте обережні, якщо у вас є якийсь спеціальний модуль, який використовує його.
  • Максимальні розміри для зображень виробу тепер можна налаштувати в конфігурації. Примітка: це може спричинити смішне повідомлення про помилку, якщо ви завантажуєте занадто великі зображення: заборонений формат файлу в Magento 1.9.2.2 після завантаження патчу

Відомі проблеми SUPEE-8788 v2

Відомі проблеми SUPEE-8788 v1

Відомі випуски 1.9.3.0

Редагувати: оскільки список стає довгим, і в цій відповіді це майже поза темою (як це не стосується SUPEE-8788), ви можете звернутися до цього повідомлення, щоб отримати список відомих питань 1.9.3.0: https: //magento.stackexchange. com / a / 140826/2380


1
Дякуємо за великий список! Одне запитання: ви впевнені, що проблема пошуку в повному обсязі стосується патча SUPEE-8788? Я не можу знайти жодних змін, пов’язаних із цією функціональністю.
Аад Матхійсен

1
@MageDev, будь ласка, зверніться до третього коментаря до питання;)
Рафаель у Digital Pianism

1
Якщо завантажувач продукту не працює після успішного застосування патчу, а ви використовуєте популярний плагін CreareSEO, це виправлення потрібно буде застосувати також github.com/adampmoss/CreareSEO/pull/78
joesk

1
Я помітив, що ви згадали "Спосіб оплати Paypal Express тепер гарантує, що електронна пошта клієнта існує в Magento". Чи означає це, що Гість не може чекотати з PayPal express? Ви повинні бути зареєстрованим користувачем? Я чогось сумую?
Ікона

1
Деякі сторонні розширення, які використовували старий завантажувач, просто порушуються після застосування виправлення. Наприклад, "Magic 360" додає вкладку на вкладки "Деталі продукту". Після виправлення ви не зможете переглянути / відредагувати деталі свого продукту. Я помітив цю проблему для розробника розширень на Magento connect ( magentocommerce.com/magento-connect/… ).
DarkCowboy

29

При застосуванні виправлення ця помилка може статися:

checking file skin/adminhtml/default/default/media/flex.swf
checking file skin/adminhtml/default/default/media/uploader.swf
checking file skin/adminhtml/default/default/media/uploaderSingle.swf
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
Skipping patch.
1 out of 1 hunk ignored
checking file skin/adminhtml/default/default/xmlconnect/boxes.css

Патч 8788 містить бінарний вміст. Оскільки Magento не надає жодних прямих посилань на завантаження (я ненавижу цю політику з тих пір), ви повинні завантажити патч на свій комп'ютер і завантажити його з додатком для передачі файлів (як WinSCP в Windows) на свій сервер. Наприклад, WinSCP буде завантажуватися в режимі TEXT (WinSCP обробляє * .sh файли як текст за замовчуванням).

Таким чином, вирішення цього питання - zip / tar патч-файл та знову розпакуйте / untar на сервері. et voila


Вибачте, я не мав жодного способу відповісти на це

  1. Завантажте правильну версію magento (наприклад: CE 1.9.1.0)
  2. Замініть наступні файли на завантажене місце

skin / adminhtml / default / default / media / flex.swf skin / adminhtml / default / default / media / uploader.swf skin / adminhtml / default / default / media / uploaderSingle.swf

  1. Запустіть виправлення

Працювали для мене



10
Чи читали ви питання ОП? fschmengler запитав: "Тим не менш: Чи виникли проблеми з сумісністю або помилки ПІСЛЯ застосування патча?" Я зіткнувся з цією проблемою, застосовуючи патч. Я думаю, сенс цього потоку полягає в документі можливих помилок SUPEE-8788. Це включає - IMHO - і проблеми з самим патчем.
інфабо

Відпрацювали частування, дякую! Чи найкраще це зробити для ВСІХ майбутніх патчів Magento?
KiwisTasteGood

або ви просто dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb

Взагалі раніше це було не потрібно, і я припускаю, що це не буде потрібно в майбутньому. Я думаю, SWF-файли, що завантажували, були єдиними бінарними файлами, що постачаються разом з Magento 1.x - тепер їх немає. Тож я більше не очікую таких питань у майбутньому.
інфабо

3
Використовуючи FileZilla для завантаження .shфайлу патча у ваш Magento root, binaryперед завантаженням патч-файлу встановіть тип передачі . Довідка
ForMat

25

Якщо ви раніше застосовували SUPEE-1533, виправлення не вдасться app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Я це вирішив ...

  1. Вручну поверніть зміни, внесені до цього файлу SUPEE-1533
  2. Застосовуйте SUPEE-8788
  3. Введіть вручну зміни, внесені в цей файл SUPEE-1533

Видалення змін із SUPEE-8788 небезпечно тим, що файл патчу містить двійкові дані, а збереження їх у редакторі може спричинити проблеми (інша суть).


Як я розумію, ви повернули оригінальний патч 1533, встановили SUPEE 8788, а потім знову встановили 1533 ?? Я правильно розумію?
Ікона

У мене також виникає проблема з FAILED HUNK на 28 app / design / frontend / base / default / template / review / form.phtml
Icon

9
Мені цікаво, чому, коли ми витрачаємо час на належне застосування офіційних покрокових патчів, ми за це накладаємо штрафи, маючи робити виправлення вручну, коли патчі не працюють, коли застосовані раніше виправлені патчі. Дуже дивний підхід.
Джон Холланд

1
Більшість із версіями нижче 1.9, у яких встановлено SUPEE 1533, не можуть встановити патч належним чином. SUPEE 8788 не сумісний з 1533
Ікона

2
@JonHolland Тому що, ну, це Magento.
Агоп

25

Ось короткий опис того, що я (та інші) стикалися до цього часу, я намагаюся впорядкувати його, не соромтесь додати або зв’язати все, чого не вистачає, публікація - Wiki Wiki:

Причини невдалого виправлення

Якщо ви побачите "ПОМИЛКА: Патч не вдалося застосувати / повернути успішно", знайдіть у "Hunk # 1 FAILED" у повідомленнях журналу, щоб перевірити, у якому файлі патч не вдався.

  • Очевидно, v2 патча для Magento 1.7 очікує, що SUPEE-3941 буде представлений, хоча він існує лише для Magento 1.8 та 1.9 . Якщо ви перебуваєте на Magento 1.7 і бачите помилки, пов’язані з файлами downloader, завантажте SUPEE-3941 для 1.8 та застосуйте його на 1.7, він повинен працювати. Дивіться нитку коментарів тут: проблема Patch Security SUPEE 8788
  • У версіях Magento, які раніше застосовували SUPEE-1533, патч не працює, app/code/core/Mage/Adminhtml/controllers/DashboardController.phpоскільки на файл впливають і патчі, і SUPEE-8788 (неправильно!) Припускає, що наявна непатч-версія. Це все ще стосується версії 2 патча! Версія 2 включає зміни з SUPEE-1533, тому якщо ви встановили її раніше, вам все одно доведеться відновити її, але не потрібно вручну застосовувати її знову.

  • Якщо ви видалили або перейменували каталог "завантажувач", патч не вдасться, оскільки він виправляє файл у завантажувачі. Найпростіший спосіб вирішити проблему - відновити початковий каталог завантажувачів, застосувати патч, а потім видалити каталог знову. Крім того, ви також можете видалити інструкції downloader/lib/Mage/HTTP/Client/Curl.phpз патча.

  • Інші повідомлення "Hunk FAILED" зазвичай пов'язані зі зміною основних файлів або відсутніми попередніми виправленнями. Переконайтесь, що всі попередні виправлення для вашої версії Magento встановлені, і ви не вносили змін до основних файлів.

  • Ще одна поширена проблема полягає в тому, що патч не може видалити .swfфайли через їх бінарний вміст. Помилка буде виглядати приблизно так:

    checking file skin/adminhtml/default/default/media/uploaderSingle.swf
    Reversed (or previously applied) patch detected!  Assume -R? [n]
    Apply anyway? [n]
    Skipping patch.
    1 out of 1 hunk ignored

    або як це

    Patching file skin/adminhtml/default/default/media/uploader.swf using Plan A...
    No such line 2 in input file, ignoring
    Empty context always matches.
    Hunk #1 failed at 0.
    1 out of 1 hunks failed while patching skin/adminhtml/default/default/media/uploader.swf
    Hmm...  The next patch looks like a unified diff to me...
    The text leading up to this was:
    --------------------------

    або так:

    Checking if patch can be applied/reverted successfully...
    /bin/patch: **** malformed patch at line 5790: ?rM]M??????&X㔮??v??Q;r?N?qJ??Y???I0?Y??4??'?????9?.??X?Ǒ?{??ax!G???I???q?u|????թ??????|
                                                   h??o?V@??|? ?g?H aꪭ??Ю???,I"?ğ????.??    yI?I\????)?X?
                         ?p???*?e?q?K8<DqD?H;|?
    ERROR: Patch can't be applied/reverted successfully.

    Можливі рішення даються у цій відповіді від @infabo. Завантаження патча безпосередньо в систему, де я хочу його застосувати, використовуючи curl, як пояснено в https://gist.github.com/piotrekkaminski/9bc45ec84028611d621e, завжди працював для мене, за винятком випадків, коли я спробував його на Cygwin

Розширений спосіб боротьби з невдалими виправленнями: @PeterOCallaghan запропонував прокоментувати сухий рядок і вручну розібратися з файлами * .rej. Таким чином, патч можна частково застосувати, і якщо він не зможе видалити SWF-файли, ви можете зробити це вручну. Або якщо не вдалося оновити файли, downloaderоскільки ви видалили цей каталог, ви можете просто проігнорувати це.

  1. vi PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh(або подібне ім’я файлу) змінити так, _apply_revert_patch dry-runщоб мати вигляд #_apply_revert_patch dry-run

  2. запустіть виправлення, видавши ./PATCH_SUPEE-8788_CE_1.8.1.0_v1-2016-10-11-06-54-44.sh

Це буде виправляти ваші файли

  1. Прокоментувати _apply_revert_patchдо#_apply_revert_patch

  2. запустіть виправлення знову, щоб додати app/etc/app/etc/applied.patches.listзапис

  3. grep для всіх файлів .rej з

    git status | grep *.rej

  4. вручну працювати над цими змінами

Проблеми після застосування патчу

Клавіші форми

  • Для версій Magento до 1.8 існують зміни в frontend/base/defaultшаблонах. Переконайтеся, що ви вручну застосували ті самі зміни до теми, якщо вона перекриває ці файли

    Більш конкретно, доданий ключ форми для таких дій, як:

    • Видалення елемента зі списку бажань
    • Видалення адреси клієнтів із подання магазину
    • Оновлення товару в кошику

    Дивіться цю відповідь від @LukeRogers, якщо у вас виникли проблеми з цими діями.

Спеціальний завантажувач

Unirgy_Rapidflow та інші розширення зі спеціальними формами завантаження більше не працюють.

Дивіться цю відповідь від @mpchadwick та коментар @lloiacono

Я встановив його, замінивши $this->getUploader()->getConfig()з $this->getUploader()->getUploaderConfig()вUnirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload

Щоб дізнатися, чи використовує це будь-яке ваше розширення, у командному рядку можна виконати наступне:

grep -R 'getUploader()->getConfig();' app/code/community

Повідомлені повідомлення про помилки

  • Фатальна помилка PHP: виклик невизначеної функції hash_equals ()

    відбудеться , якщо ви перебуваєте на версії PHP до 5.6 і перевизначити code/core/Mage/core/functions.phpв code/local/Mage/core/functions.php(який може бути випадок , якщо ви використовуєте розширення Fishpig). Дивіться цю відповідь від @ClaudiuCreanga


Проблеми, вирішені в v2 патча

Якщо у вас виникли будь-які з цих проблем, ви, ймовірно, використовуєте версію 1 виправлення ("v1" у назві файлу). Завантажте патч ще раз, щоб отримати "v2", який виправляє ці проблеми:

  • Виникла проблема сумісності із SUPEE-3941 та downloader/lib/Mage/HTTP/Client/Curl.php

  • "Виняток" з повідомленням "Непідтримуваний тип даних N" в /lib/Unserialize/Reader/ArrValue.php

  • Патч для EE 1.14.2.0 випадково містив новий файл test_oauth.php, який слід видалити! Дивіться цю відповідь від @MatthiasZeis


Клавіша форми, додана під час оновлення котирувального пункту в кошику, - це не те, що було додано до SUPEE-8788 (не принаймні з 1.9.2.4)
Рафаель у Digital Pianism

@RaphaelatDigitalPianism, щонайменше, патч 1.13.0.1 додає перевірку ключа форми для Mage_Checkout_CartController::updatePostAction, можливо, й інших версій патчу.
Люк Роджерс

23

Якщо ви отримаєте

Call to undefined function hash_equals() error

навіть якщо ваш патч виявився успішним, це може означати, що ви скопіювали функції.php в app/code/local/Mage/Core.

Вам також доведеться вставити цю функцію, оскільки цей файл замінює основний.

Тому вставте в app/code/local/Mage/Core/functions.phpкінці:

if (!function_exists('hash_equals')) {
    /**
     * Compares two strings using the same time whether they're equal or not.
     * A difference in length will leak
     *
     * @param string $known_string
     * @param string $user_string
     * @return boolean Returns true when the two strings are equal, false otherwise.
     */
    function hash_equals($known_string, $user_string)
    {
        $result = 0;

        if (!is_string($known_string)) {
            trigger_error("hash_equals(): Expected known_string to be a string", E_USER_WARNING);
            return false;
        }

        if (!is_string($user_string)) {
            trigger_error("hash_equals(): Expected user_string to be a string", E_USER_WARNING);
            return false;
        }

        if (strlen($known_string) != strlen($user_string)) {
            return false;
        }

        for ($i = 0; $i < strlen($known_string); $i++) {
            $result |= (ord($known_string[$i]) ^ ord($user_string[$i]));
        }

        return 0 === $result;
    }
}

1
Я не знаю, що Фішпіг вимагає від вас цього зробити. Тож якщо у вас це встановлено, це буде проблемою для вас.
mpchadwick

1
Примітка: Я був розгублений, і саме MWI просить переосмислити функцію.php
mpchadwick

18

У PATCH_SUPEE-8788_EE_1.14.2.0_v1-2016-10-10-02-27-03.shфайлі test_oauth.phpстворюється в кореневому каталозі Magento. Ви хочете видалити цей (або принаймні не розгорнути його у виробництві), оскільки він може виявити повний слід стека винятку для особи, яка називає URL https: //thedomain.tld/test_oauth.php .


Гарний улов, Маттіас! Буде дещо поганою формою для розгортання 17 патчів APPSEC та відкриття іншого вектору одночасно. Ви ще повідомили про це Magento?
Bryan 'BJ' Hoffpauir Jr.

Я відкрив путівку про це за допомогою Magento Support, оскільки я впевнений, що в цьому є інші. Не чули про версію виправлення v2, але вони повинні знати про цю проблему.
квазіоб'єкт

1
Вийде v2, має бути опублікований дуже скоро. Так, я повідомив про це, коли публікував тут.
Маттіас Зейс

1
Схоже, це виправлено зараз
Ерфан

18

ЦІ ЗАЯВКИ ЗА 1.7 МАГЕНТО ВЕРСІЙ


Якщо ви працюєте у версії 1.7.0.2 версії 2 SUPEE 8788 , на рядку 372 не вдасться застосувати зміни до Curl.php:

patching file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client

Інструкція говорить, що нам слід повернути SUPEE-1533 та встановити SUPEE-3941

ПРОБЛЕМА: SUPEE-3941 доступний лише для Magento CE 1.8-1.9. Ви можете спробувати застосувати його для 1,7, і він застосуватиметься. Я думаюрозробники патчів Magento повинен або випустити версію 3 SUPEE-8788 для тих, хто працює з Magento нижче 1,8, або створити додатковий патч SUPEE-3941, призначений для версії нижче 1.8.

У Btw версії 1 SUPEE-8788 не було Curl.phpпомилки в 1.7.0.2 (я тестував її в багатьох установках)

Порада: якщо ви зіткнулися з помилками .swf в кінці, переконайтесь, що ви стисніть патч, завантажте його на сервер і там розпакуйте. Помилка SWF не буде.

ОНОВЛЕННЯ:

Magento сказав, що в основному добре встановити патч SUPEE-3941 на версії Magento 1.7.0.2, щоб уникнути помилок при застосуванні SUPEE-8788


Нам
здали

@ kavoir.com ви також отримаєте таку ж помилку CURL.PHP при установці на 1.7.0.2 ??
Ікона

1
Тут же встановлено 8788 V2 на 1.7.0.2, хоча цікаво, ми отримуємо таку ж помилку curl.php на наших новіших сайтах версії 1.9.2.1, у яких немає SUPEE-3941. повернення 1533 року теж не допомагає цій проблемі
Джон Голланд

@JonHolland Я написав команді magento ... Сподіваюся, вони відгукнуться
Ікона

2
Я отримав відповідь від лідера спільноти magento, в основному це нормально встановити 3941 патч на версії 1.7.0.2 ..
Ікона

15

Оригінал DashboardController.php (1.7.0.2- не впакований, свіжий від magento)

  if ($params = unserialize(base64_decode(urldecode($gaData)))) {

1533 Виправлена ​​панель керуванняController.php містить такі зміни

 if ($newHash == $gaHash) {
            $params = json_decode(base64_decode(urldecode($gaData)), true);
            if ($params) {

8788 патч вносить такі зміни в DashboardController.php

 if (hash_equals($newHash, $gaHash)) {
            if ($params = unserialize(base64_decode(urldecode($gaData)))) {

Як ви бачите, 8788 має змінену зміну порівняно з 1533, я не впевнений, що ідеал модифікувати файл, як пропонує mpchadwick, вручну замінивши зміни 8788 на 1533 після встановлення 8788. В основному видалення 8788 зміни.

Будь-які пропозиції?


2
IMO Бажаний кінцевий результат - це поєднання двох. Це має бути json_decode, але він повинен використовувати hash_equals, а не ==. Це запобігає нападу на час (що було б надзвичайно важко).
Пітер О'Каллаган

Погодьтеся з @Peter. Якщо ви використовуєте Git, скасуйте комісію для SUPEE-1533, застосуйте новий патч, фіксуйте, а потім поверніть повторне виконання. Конфлікт в Росії DashboardController.phpповинен вирішуватися автоматично.
Фабіан Шменглер

1
Надайте, будь ласка, фрагмент коду для DashboardController.php, який слід замінити після встановлення 8788? Я не точно впевнений, що відредагувати, як я вже згадував вище, патч-рядки 1533 та 8788 виглядають по-різному. Чи можете ви, будь ласка, надати, як має виглядати вручну модифікована версія?
Ікона

Ось як повинен виглядати код 8788 після ручної модифікації оновлення 1533? if (hash_equals ($ newHash, $ gaHash)) {if ($ params = json_decode (base64_decode (urldecode ($ gaData))))) {
Icon

1
Примітка щодо повернення комісій два рази: ви можете використовувати git revert -n 123456abта git cherry-pick -n 123456abтимчасово скасовувати SUPEE-1533, не створюючи для цього зайвих комісій.
Маттіас Зейс

14

Наполовину спокуситися позначити цю публікацію як основна думка або без чіткої відповіді;)

Клавіші форми додані до декількох контролерів, кількість залежить від вашої версії magento.

Якщо у вас виникли неприємності

  • Видалення елемента зі списку бажань
  • Видалення адреси клієнтів із подання магазину
  • Оновлення товару в кошику

Вам потрібно буде перевірити .phtmlфайл тем і переконатися, що ви POSTпереходите через параметр ключа форми, щоб він передав перевірку в таких діях контролера, як:

class Mage_Checkout_CartController extends Mage_Core_Controller_Front_Action

     public function updatePostAction()
     {
+        if (!$this->_validateFormKey()) {
+            $this->_redirect('*/*/');
+            return;
+        }
+

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

Клавіші форми часто додаються до .phtmlшаблону, що містить форму як додатковий inputзразок

<input name="form_key" type="hidden" value="<?php echo $this->getFormKey() ?>" />

Чи є повний перелік форм, на які це впливає? Тож я можу протестувати та встановити ВСІ їх раз і назавжди. Не хочете таємно дурних дисфункцій, таких як ця, щоб дратувати клієнтів або знижувати швидкість конверсії.
datasn.io

Якщо SUPEE 8788 ідеально встановлено на 1.7, він змінює (app / design / frontend / base / default / template .....). Але, незважаючи на зміну списку бажань на фронтальному веб-сайті, додайте кнопки видалення всі працюють ідеально. Чи потрібно ще вручну виправляти файли тем? Або, поки патч нічого не зламає на фронті, ми можемо залишити його таким, який є?
Ікона

11

Я зіткнувся з тією ж проблемою в SWF в 1.9.2.4.

Fox Fixed - Будь ласка, виконайте нижче дії

Крок 1. Завантажте патч безпеки 8788 SSH-файл на це посилання: - https://magento.com/tech-resources/downloads/magento/

Крок 2. Після завантаження патча безпеки 8788 SSH-файл Будь ласка, покладіть в одну папку і зробіть ту саму папку Zip-файл.

Крок 3. Завантажте папку Zip у папку root magento та Розпакуйте через SSH Putty.

Крок 4. Запустіть виправлення: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Примітка: він патч-файл містить цілі двійкові файли у текстовому форматі. Ось чому, коли ви завантажуєте патч безпеки 8788 SSH-файл без zip-файлу, той самий файл буде пошкоджений. *


10

Після застосування SUPEE-8788 я більше не міг завантажувати "Імпортувати" профілі за допомогою Unirgy_RapidFlow 2.0.0.18, отримуючи помилку 500 (нічого в журналах Apache або HTTPD).

Я все ще в процесі налагодження і працюю з Unirgy, щоб вирішити, але, схоже, блок завантажувача викликає проблему ( Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload).

Патч вніс кілька змін до Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Contentбатьківського.

Окрім uRapidFlow, в результаті SUPEE-8788 можуть вийти з ладу інші сторонні модулі, які дозволяють завантажувати файли.


Ви вже знайшли рішення для цього? Я виправив це, замінивши $ this-> getUploader () -> getConfig () на $ this-> getUploader () -> getUploaderConfig () в Unirgy_RapidFlow_Block_Adminhtml_Profile_Edit_Tab_Upload
lloiacono

Добре зараз. Unirgy також, схоже, виправив це в 2.0.0.23. secure.unirgy.com/release-notes.php?m=1#RapidFlow Я працюю з клієнтом, щоб придбати додаткові оновлення та не змогли перевірити.
mpchadwick

запустіть це на docroot, щоб знайти, які ще файли потрібно виправити: grep -r 'getUploader () -> getConfig ()' ./
lloiacono

8

Під час виконання сценарію виправлення я отримав таке повідомлення:

can't find file to patch at input line 4753
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
|index 6d0607e..5757be3 100644
|--- downloader/lib/Mage/HTTP/Client/Curl.php
|+++ downloader/lib/Mage/HTTP/Client/Curl.php

Я думаю, це тому, що я перейменував папку "завантажувач", дотримуючись рекомендацій з https://www.magereport.com .

Я тимчасово перейменував папку на "завантажувач", правильно застосував патч, а потім перейменував його на його таємне ім'я.


8

Патч на 1.9.0.0 теж не вдається (можливо, 1.8.0.0 до 1.9.0.1 постраждав) через SUPEE-3941. 3941 завантажувач патчів / lib / Mage / HTTP / клієнт / Curl.php і тепер 8788 виходить з ладу.

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 378.
1 out of 1 hunk FAILED
checking file js/lib/uploader/flow.min.js

Приблизний варіант на 1.9.0.1 нижче. Зміни занадто ґрунтовні, можливо, потрібно відкоригувати сам патч 8788.

редагування: відредагуйте виправлення, знайдіть Curl.php та замініть

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         }

         $this->curlOption(CURLOPT_URL, $uri);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, FALSE);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');

         // force method to POST if secured
         if ($isAuthorizationRequired) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js 

з

diff --git downloader/lib/Mage/HTTP/Client/Curl.php downloader/lib/Mage/HTTP/Client/Curl.php
index c55f88d..31f9f77 100644
--- downloader/lib/Mage/HTTP/Client/Curl.php
+++ downloader/lib/Mage/HTTP/Client/Curl.php
@@ -378,8 +378,8 @@ implements Mage_HTTP_IClient
         $uriModified = $this->getSecureRequest($uri, $isAuthorizationRequired);
         $this->_ch = curl_init();
         $this->curlOption(CURLOPT_URL, $uriModified);
-        $this->curlOption(CURLOPT_SSL_VERIFYPEER, false);
-        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 2);
+        $this->curlOption(CURLOPT_SSL_VERIFYPEER, true);
+        $this->curlOption(CURLOPT_SSL_VERIFYHOST, 'TLSv1');
         $this->getCurlMethodSettings($method, $params, $isAuthorizationRequired);

         if(count($this->_headers)) {
diff --git js/lib/uploader/flow.min.js js/lib/uploader/flow.min.js

Я налаштував файли патчів для роботи всіх версій Magento після встановлення всіх попередніх патчів: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Jeroen Vermeulen - MageHost

8

Ось що я отримую

Hunk #1 FAILED at 373.
1 out of 1 hunk FAILED -- saving rejects to file downloader/lib/Mage/HTTP/Client/Curl.php.rej
patching file js/lib/uploader/flow.min.js
patching file js/lib/uploader/fusty-flow-factory.js
patching file js/lib/uploader/fusty-flow.js
patching file js/mage/adminhtml/product.js
patching file js/mage/adminhtml/uploader/instance.js
patching file skin/adminhtml/default/default/boxes.css
patching file skin/adminhtml/default/default/media/flex.swf
patching file skin/adminhtml/default/default/media/uploader.swf
patching file skin/adminhtml/default/default/media/uploaderSingle.swf
patching file skin/adminhtml/default/default/xmlconnect/boxes.css

Отримання точно такої ж помилки при установці. Хочеться дізнатись, якщо ви щось зрозуміли.
TunaMaxx

Ні, все ще чекаю, що хтось інший розбере це
Хаїм,

2
Див. Magento.stackexchange.com/a/73957/9276 . Якщо у вашому файлі Curl.php є таке виправлення, скасуйте цю зміну (поверніть рядок до CURLOPT_SSL_CIPHER_LIST / 'TLSv1'), застосуйте виправлення та повторіть зміни.
Джо

Дякую @Joe. Просто повертався сюди, щоб опублікувати ту саму інформацію. Ти побив мене до цього! Ось що я отримую спати. :)
TunaMaxx

Якщо було те саме питання, це вирішило. Дякую!
dafyddPrys

8

Схоже, Magento випустить оновлену версію SUPEE 8788, щоб виправити сумісність SUPEE 1533. Я не впевнений, чи добре зараз застосувати виправлення вручну. Зміни вручну можуть поставити під загрозу майбутні оновлення виправлень. Хотіли б почути ваші думки.

Це підтвердив менеджер спільноти Magento. З 13 жовтня, 15:00 EST .. всі патчі для версій нижче 1.9 видаляються зі списку завантажень https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 Дивіться пост: https://community.magento.com/t5 / Патчі безпеки / SUPEE-8788-AND-SUPEE-1533-Incompatible-Hunk-error / mp / 50514 / виділити / помилково # M1805


1
Якщо оновлений патч має точно такий же результат, як наші виправлення вручну, і я сподіваюся, що це так, то я не бачу проблеми. Оновлений патч не знадобиться, і майбутні патчі не побачать різниці.
Фабіан Шменглер

1
@fschmengler досить схожий на несумісність PHP 5.5 для IME SUPEE-7405. Патч відображатиме ручне виправлення.
Рафаель у цифровому піанізмі

1
@fschmengler Наскільки мені відомо, Magento знову випустить такий самий патч із виправленнями. Я думаю, що найкраще видалити старий патч (самомодифікований) та встановити новий (можливо, випустити наступного дня. До завтра ми повинні мати оновлення. Дякую за допомогу!
Ікона

Я не сумніваюся у цінності цього внеску, але дотримуючись стилю запитання, ця відповідь не здається мені відповіді, більше оновленням, яке @fschmengler може додати до свого початкового запитання (або ви можете додати його до Відповідь Вікі спільноти).
оч.

8

Ми отримуємо звіти про наступні нові випуски, яких я не бачу в інших публікаціях:

  • Виняток у нових випусках у деяких випадках - виклик методу addCrumbs () (у випадку, якщо getStoreConfig (web / default / show_cms_breadcrumbs) не визначено). Не повинен впливати на виправлення, лише версія 1.9.3 / 1.14.3

"Виняток" з повідомленням "Непідтримуваний тип даних N" в /lib/Unserialize/Reader/ArrValue.php в 1.9.1.0 та, можливо, більш ранніх версіях, коли застосовується патч. вирішено у версії 2 патча.

Наразі невідомі прості шляхи вирішення цих питань. Ми працюємо над їх вирішенням у новій версії патча.


Можливе виправлення непідтримуваної помилки даних типу N gist.github.com/balloz/ceaf5feb5ac66caaa82342441d32aa88
Рафаель у Digital Pianism

Будь-яка ідея, як подолати помилку Curl.php при установці SUPEE 8788 на версії 1.6 та 1.7?
Ікона

8

Завантажувач розривається, коли ви завантажуєте один і той же файл для зразків і посилань одночасно для продуктів, що завантажуються. Зауважте, що це відбувається лише в тому випадку, якщо ви використовуєте один і той же файл в обох областях. (Раніше вона працювала правильно перед патчем.)

Щоб відтворити, відредагуйте завантажуваний продукт та натисніть на вкладку Інформація, яку можна завантажити:

  1. Відкрийте рядок " Зразки " гармошки та перегляньте зразок файлу.
  2. У рядку Посилання на гармошці перегляньте посилання для завантаження
  3. Клацніть Завантажити файли з розділу "Посилання".

Завантажувач завантажує зразок-файл замість завантажуваного файлу посилань, і файл, який ви переглядали у розділі посилання, який можна завантажити, зникає.

Мені вдалося відтворити це на ванілі, виправленої 1.7.0.2 CE встановлення.


Виявляється, це поведінка основної ліцензії
Лора

6

Так, у мене виникли інші проблеми під час входу, він завжди поверне це:

Я виявив це тому, що в класі Enterprise_Pci_Model_Observer рядок 165,

Замість:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPassword())) {

Це виправить:

if (!Mage::helper('core')->getEncryptor()->validateHashByVersion($password, $model->getPasswordHash())) {

Оскільки мені не подобається змінювати ядро ​​(навіть переходити до локального), найкраще, якщо Magento виправить це або уточнить це. Наразі шахта створює нові розширення, щоб розширити це та створити функцію для getPassword () (оскільки я хочу переконатися, що всі розробники ввімкнули режим розробника).


2
Застосувавши V2 патча, я стикаюся з тим же виправленням патчу EE1.12. Схоже, цей файл змінився в якийсь момент між 1,12 та 1,14, але не як частина виправлень
Кріс

1
Підвищили це з Magento, і вони надали ще один патч для вирішення проблеми. Зміна ідентична зазначеній вище.
Кріс

6

Редагування файлу виправлення

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

Якщо у вас є зручний командний рядок, тобто. linux / * unix спробуйте скористатися sedутилітою для видалення конкретних рядків.

Реквізит до @fooman для підказки. Дивіться його оригінальну суть

Приклад sed -ie '101,111d' PATCH_SUPEE-8788_CE_1.7.0.2_v1-2016-10-11-06-36-18.sh

Це видалить рядки від 101 до 111 включно.

Питання подання форми

Якщо ви бачите вищезгадане для випуску, ви також можете:

<?= $this->getBlockHtml('formkey'); ?>

Для отримання додаткової інформації дивіться цей пост Що таке getBlockHtml ("formkey")?


4
Будьте уважні, <?=вона не ввімкнена для кожної конфігурації php
Рафаель у Digital Pianism

@RaphaelatDigitalPianism ти прав. Хоча <?=це ввімкнено за замовчуванням у більшості конфігурацій php.ini, деякі хости вирішують його відключити.
Сергій Філіпов,

5

CE 1.6.2.0 і SUPEE-3941

Щоб застосувати патч безпеки SUPEE-8788 (версія 2), ( http://devdocs.magento.com/guides/m1x/other/ht_install-patches.html#apply-8788-new ) рекомендується спочатку застосувати SUPEE-3941 .

Однак на сторінці завантаження патча немає патчу SUPEE-3941 для CE 1.6.2.0. Патч доступний лише для CE 1.8 та 1.9.

Як згадується в цій темі, здається, що добре застосовувати наявний патч SUPEE-3941 (для CE 1.8 та 1.9) на CE 1.7.

Чи також добре застосовувати SUPEE-3941 (для CE 1.8 та 1.9) на CE 1.6.2.0? Я спробував застосувати його до CE 1.6.2.0 і отримав таку помилку:

Checking if patch can be applied/reverted successfully...
-e ERROR: Patch can't be applied/reverted successfully.

checking file downloader/Maged/Model/Connect.php
Hunk #1 succeeded at 489 (offset 3 lines).
checking file downloader/lib/Mage/Connect/Backup.php
checking file downloader/lib/Mage/Connect/Command.php
Hunk #1 FAILED at 64.
Hunk #2 succeeded at 205 with fuzz 2 (offset -44 lines).
Hunk #3 succeeded at 382 (offset -53 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Command/Install.php
Hunk #1 FAILED at 90.
Hunk #2 succeeded at 333 with fuzz 1 (offset 17 lines).
Hunk #3 succeeded at 363 (offset 17 lines).
1 out of 3 hunks FAILED
checking file downloader/lib/Mage/Connect/Packager.php
Hunk #4 FAILED at 268.
Hunk #5 FAILED at 290.
Hunk #6 succeeded at 369 with fuzz 2.
Hunk #7 FAILED at 377.
Hunk #9 FAILED at 428.
4 out of 10 hunks FAILED
checking file downloader/lib/Mage/Connect/Rest.php
Hunk #1 succeeded at 71 with fuzz 2 (offset -11 lines).
checking file downloader/lib/Mage/Connect/Singleconfig.php
Hunk #1 succeeded at 100 (offset -36 lines).
checking file downloader/lib/Mage/Connect/Validator.php
Hunk #1 succeeded at 418 (offset -41 lines).
Hunk #2 succeeded at 431 (offset -41 lines).
checking file downloader/lib/Mage/HTTP/Client/Curl.php
checking file downloader/template/settings.phtml

5

Трохи пізно, але ми знайшли проблему в патчі SUPEE-8788 V2, який принаймні стосується файлів патчів для Magento 1.7.0.2 та 1.7.0.1. Ймовірно, це стосується і всіх попередніх версій, для яких існує версія патча. Версія Magento від 1.8 далі не впливає, оскільки патч не змінює шаблони для них.

Детально

У патчі відсутня форма ключа для файлу app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml

Без нього вхід не працює на одній сторінці замовлення (він просто не працює без помилок).

Виправити

Формуляр повинен бути вставлений як у наступному патчі:

diff --git a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
index 9d15a577b..18483a3c5 100644
--- a/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
+++ b/app/design/frontend/base/default/template/persistent/checkout/onepage/login.phtml
@@ -71,6 +71,7 @@
         <h3><?php echo $this->__('Login') ?></h3>
         <?php echo $this->getMessagesBlock()->getGroupedHtml() ?>
         <form id="login-form" action="<?php echo $this->getPostAction() ?>" method="post">
+        <?php echo $this->getBlockHtml('formkey'); ?>
         <fieldset>
             <h4><?php echo $this->__('Already registered?') ?></h4>
             <p><?php echo $this->__('Please log in below:') ?></p>

4

Для 1533 виправленого сайту просто замініть рядок із PATCH_SUPEE-8788 *****. Sh:

diff --git app/code/core/Mage/Adminhtml/controllers/DashboardController.php app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index 09ffc4c..367bf8e 100644
--- app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,7 +91,7 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
+            if (hash_equals($newHash, $gaHash)) {
                 if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params) 

автор:

diff --git a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
index ab2d654..367bf8e 100644
--- a/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
+++ b/app/code/core/Mage/Adminhtml/controllers/DashboardController.php
@@ -91,9 +91,8 @@ class Mage_Adminhtml_DashboardController extends Mage_Adminhtml_Controller_Actio
         $gaHash = $this->getRequest()->getParam('h');
         if ($gaData && $gaHash) {
             $newHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
-            if ($newHash == $gaHash) {
-                $params = json_decode(base64_decode(urldecode($gaData)), true);
-                if ($params) {
+            if (hash_equals($newHash, $gaHash)) {
+                if ($params = unserialize(base64_decode(urldecode($gaData)))) {
                     $response = $httpClient->setUri(Mage_Adminhtml_Block_Dashboard_Graph::API_URL)
                             ->setParameterGet($params)
                             ->setConfig(array('timeout' => 5))
diff --git a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
index da1b14a..b6d72c0 100644
--- a/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
+++ b/app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php
@@ -444,7 +444,7 @@ class Mage_Adminhtml_Block_Dashboard_Graph extends Mage_Adminhtml_Block_Dashboar
             }
             return self::API_URL . '?' . implode('&', $p);
         } else {
-            $gaData = urlencode(base64_encode(json_encode($params)));
+            $gaData = urlencode(base64_encode(serialize($params)));
             $gaHash = Mage::helper('adminhtml/dashboard_data')->getChartDataHash($gaData);
             $params = array('ga' => $gaData, 'h' => $gaHash);
             return $this->getUrl('*/*/tunnel', array('_query' => $params));

В основному він просто повернув 1533 рік і залишив 8788 уздовж.


Як я розумію, 8788 скасовує зміни в DashboardController.php, а оригінальні 1533 зміни будуть усунені?
Ікона

2
Так, метою 1533 року замінити serialize () на json_encode () було зменшити ймовірність проходу атаки ($ newHash == $ gaHash). У той час як 8788 додає hash_equals () з тією ж метою
Вільям Чжао

Чудово, я думав зробити трохи інакше, на своєму тестовому сайті я завантажив чистий DashboardController.php (файл запасу magento) і встановив SUPEE 8788. Однак я читав на цьому форумі і пан, згаданий, щоб вручну вводити supee 1533 зміни в Supee 8988 модифікований файл. Що ви думаєте про мій метод?
Ікона

Піктограма, подивіться на мій розбіг вище, у вашому образі вам потрібно змінити лінійку, оновлену SUPEE 1533 у програмі "app / code / core / Mage / Adminhtml / Block / Dashboard / Graph.php", якщо у вас вже є SUPEE 1533 наклеєний. Інакше Graph.php випустить парами формату json, і ви не зможете розшифрувати його unserialize ()
William Zhao

4

Захоплення Authorize.net порушується після застосування виправлення. Авторизація працює добре, але при внесенні платежу до рахунку-фактури це дає "Помилка шлюзу: Номер кредитної картки потрібен" . Файл журналу платежів тепер показує x_typeпарам пропуску значення auth_capture, але перед тим, як пройти патч, prior_auth_captureякий працював добре. Хтось із цією проблемою?

ОНОВЛЕННЯ: Виправлення цієї проблеми - Authorize.net не захоплює


4

Я проклеював копію Magento 1.9.2.4 за допомогою SSH з SUPEE-8788 Я проклеював іншу копію Magento 1.9.2.4, використовуючи ftp з SUPEE-8788, я приклеював копію magento 1.9.1.0 за допомогою SSH з SUPEE-8788 використана свіжа копія магенто 1.9.3.1

На всіх цих веб-сайтах magento з SUPEE-8788 я відчуваю ту ж проблему (можливо, помилка виправлення)

Використання завантажуваних продуктів та перехід до завантажуваної інформації-> Зразки, коли я намагаюся додати нову рядок (одну чи більше), натиснувши на "X", я більше не можу видалити рядоквведіть тут опис зображення

Я не такий експерт у Магенто, я намагаюся знайти рішення. Якщо я знайду, я опублікую, якщо у когось із вас є якесь рішення, воно буде для мене дуже корисним

ОНОВЛЕННЯ : за допомогою інспектора Chrome я побачив цю помилку:введіть тут опис зображення

******* Я ЗНАЙТИ РІШЕННЯ *******

Я витратив 2 дні, і я сподіваюся, що це може допомогти комусь іншому, це помилка в SUPEE-8788

Відкрийте sample.phtml всередині app/design/adminhtml/default/default/template/downloadable/product/edit/downloadable

Знайдіть функцію

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        element.down('div.flex').remove();
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

і замінити його на

remove : function(event){
    var element = $(Event.findElement(event, 'tr'));
    alertAlreadyDisplayed = false;
    if(element){
        element.down('input[type="hidden"].__delete__').value = '1';
        Element.select(element, 'div.flex').each(function(elm){
            elm.remove();
        });
        element.addClassName('no-display');
        element.addClassName('ignore-validate');
        element.hide();
    }
},

Це вирішить БУГ


3

Застосовується PATCH_SUPEE-8788_CE_1.9.2.1_v1-2016-10-11-07-00-43 на тестовій копії сайту, що працює 1.9.2.1, і він порушив замовлення. Поверніть виправлення, і каси знову працюватимуть нормально.

При поданні замовлення, ви повернетеся до кошика замість успішності оформлення каси. Подумайте, я буду чекати версії .1, перш ніж спробувати.


здається, що виняток видається під час збереження замовлення, чи перевірили ви свої журнали?
simonthesorcerer

Так виглядає ... Фатальна помилка PHP: Клас "Mage_Core_Helper_UnserializeArray" не знайдено в ... / public_html / app / Mage.php на лінії 547
Адам Лавери

@AdamLavery Перейдіть до Var / cache та видаліть папку кешу. Я отримую цю помилку, коли повертаю паші до оригіналу. Це кеш-річ.
Ікона

Невдовзі повинен вийти новий патч. Це величезне оновлення виправлень, щоб не було помилок ... Так ... пальці схрещені.
Ікона

1
Це, ймовірно, тому, що вам не вистачає. app/code/core/Mage/Core/Helper/UnserializeArray.phpЦе було додано в SUPEE-6788, який ви, можливо, не встановили. Схоже, що SUPEE-8788 має незадокументовану залежність від SUPEE-6788.
Тайлер В.

3

У новому електронному листі Magento в перші години повідомляється, що вони випускатимуть нові версії патчів для вирішення проблем сумісності SUPEE-1533 та SUPEE-3941. Тож, можливо, просто трохи потримайте коней.

ПІДПРИЄМСТВО 1.14.3, ВИДАЧ СПІЛЬНОСТІ 1.9.3 та SUPEE-8788 Enterprise Edition 1.14.3 та Community Edition 1.9.3 забезпечують понад 120 поліпшень якості, а також підтримку PHP 5.6. Вони також вирішують критичні проблеми безпеки, включаючи: ...

... Патч SUPEE-8788 вирішує ці проблеми безпеки у попередніх версіях Magento. На жаль, ми виявили, що патчі SUPEE-8788 для Community Edition 1.8 та більш ранніх випусків та Enterprise Edition 1.13 та більш ранніх випусків виходять з ладу, якщо магазин раніше застосував патчі безпеки SUPEE-1533 або SUPEE-3941. Ми працюємо над тим, щоб виправити це питання, і надамо нові виправлення протягом найближчих одного-трьох днів. До цього часу ми видаляємо ці версії патча SUPEE-8788 з розповсюдження ...

Однак я стурбований тим, що мої активні версії Magento потрапляють між CE 1.9.3, що, як вони кажуть, працює, і нові версії, які незабаром з'являться для V1.8 і нижче. Я зв’язався з ними, тому зачекаю і побачу, що вони кажуть.


Не дуже «відповідь», але корисна інформація, сподіваємось.
Джон Голланд

Привіт Джон, ви також можете змінити оригінальне запитання @ fschmengler і додати це внизу як ОНОВЛЕННЯ . Я думаю, що він буде добре з цим і схвалить цю редакцію.
7оч.

Гарна ідея, але хтось уже щось додав :)
Джон Голланд,

3

Я не великий шанувальник патчінгу. Особисто я видаляю всі файли Magento зі своїх каталогів, після чого завантажую нову версію (використовуючи скрипт оболонки). Усі файли, встановлені протягом багатьох років, як модулі чи теми, все ще є. Для бази даних я порівняю свіжі встановлені версії. Один із способів - це створення або видалення стовпців / таблиць у базі даних, інший спосіб - знову встановити Magento, просто змінивши /app/etc/local.xml ім'я файлу. Я віддаю перевагу першому.

Якщо ви не зміните структуру бази даних на версію 1.9.3.0, ви отримаєте деякі помилки або не можете завантажити область адміністратора. Якщо когось цікавлять порівняння каталогів та баз даних Magento між Magento CE 1.9.2.4 та 1.9.3.0, просто завантажте файл звідси:

Порівняння Magento: версії 1.9.2.4 - 1.9.3.0

Є два html-файли з дуже хорошими візуальними результатами.

Сьогодні я оновив 4 магазини, використовуючи свій метод замість латки. Усі працюють без проблем.


Це добре, якщо ви перебуваєте в останній версії і є новий випуск патча, як це було у 1.9.2.2, 1.9.2.3 та 1.9.2.4 - однак для цього патчу не було нової версії 1.9.2.5 . Версія 1.9.3.0 містить купу додаткових змін, які не стосуються безпеки.
Фабіан Шменглер

Своїм методом я отримав два в одному, оновлення безпеки та нові функції. Єдина проблема полягає в тому, щоб ви зрозуміли, що відбувається з файловою системою та базою даних між релізами. Це не велика справа, коли ти знаєш, що робиш. І у вас кращий контроль. Я роблю цей метод з 1.7 версії.
ADDISON74

3

У більшості встановлень Magento CE (6 усього) не пощастило. Різні версії: 1.9.1, 1.9.0.1, 1.8.1.

Я завантажив відповідний патч 8788. Я переконався, що потрібно повернути 1533, коли це стосується.

Я отримую такі ключові помітні результати, які є сумнівними:

Checking if patch can be applied/reverted successfully...
ERROR: Patch can't be applied/reverted successfully.

...

checking file downloader/lib/Mage/HTTP/Client/Curl.php
Hunk #1 FAILED at 372.

... перевірка додатка файлу / код / ​​core / Mage / Adminhtml / Controllers / IndexController.php Hunk №1 вдалося на 373 (зміщення -19 рядків). ...

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.ph

Те саме, що вище: lib / Unserialize / Reader / Arr.php lib / Unserialize / Reader / ArrValue.php. І каже, що ці ханки проігнорували.

Примітка: У моєму несеріалізованому / читальному реєстрі немає нічого. Повністю порожній. Примітка: Curl.php знаходиться у програмі для завантаження. Не перейменований. Він закінчується, але я не бачу видалених файлів SWF. Я не бачу патч, застосований у списку primijeних.patches.list

Не має сенсу.


Добре .. зрозумів це все. Однозначно потрібно працювати через ВСІ старі патчі, по порядку. У мене було кілька старших патчів, які не застосовувалися. Після того, як я зняв їх і застосував по лінії, все почало успішно виправлятись. Однак я виявив, що кожного разу, коли я отримував помилку на файл у будь-якому патчі, мені довелося зайти в патч і знайти те, що він намагався замінити, і вручну зробити це в моїй установці magento. Після цього вилучіть ці "розбіжні" лінії з патча та повторіть. По суті, будь-коли, коли ви бачите помилку, перейдіть у патч і подивіться, що він намагається +/- з нього, а потім зробіть це самостійно.
Багатий Йесіан

3

Сьогодні я зафіксував близько 10 веб-сайтів, і кожен сайт, на якому патч SUPEE-8788 не вдався, мав програму SUPEE-6788 .

Це призвело до (прикладу) наступної помилки:

can't find file to patch at input line 5810
|diff --git lib/Unserialize/Parser.php lib/Unserialize/Parser.php
|index 423902a..2c01684 100644
|--- lib/Unserialize/Parser.php
|+++ lib/Unserialize/Parser.php

Після установки SUPEE-6788 SUPEE-8788 виправлено правильно.


3

Якщо ви отримуєте Hunk #1 failedна xxx помилку, це те, що я зробив

Я отримав Hunk #1 failed at 373. Помилка !! після лінії

перевірка завантажувача файлів / lib / Mage / HTTP / клієнт / Curl.php

Тому я перевірив Curl.phpфайл і виявив, що я змінив файл раніше (прокоментував один рядок). Я відновив оригінальний файл і запустив патч знову. Тоді пластир був успішним. ;).

Потім я перевірив:

/app/etc/applied.patches.list & все здається гарним

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.