Обновление безопасности SUPEE-8788 - возможные проблемы?

108

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

Хорошо, что на этот раз нет шаблонов внешнего интерфейса, так что, похоже, нам не нужно исправлять все наши темы. Это верно только для Magento 1.8 или выше.

Тем не менее: Вы столкнулись с какими-либо проблемами совместимости или ошибками после применения патча?

Фабиан Шменглер
источник
6
«здесь нет шаблонов внешнего интерфейса» - это неправильно для старых версий Magento. Например, патч 1.7.0.2 изменяет 9 файлов шаблонов frontend / base / default.
Кристоф в Фуман
magento.stackexchange.com/questions/140571/… обманывает этот? Может быть, связать всю информацию здесь ...
7
2
Для тех, у кого есть проблемы с обновлениями патча .swf, я просто удалил строки 5951-9818 из патча и вручную удалил файлы .swf из /skin/adminhtml/default/default/media- так как это все, что патч делал в любом случае.
Лиам Макартур
не знаю почему, но после установки 8788 на 1.8.0.0, патч 7405 сообщает, что он НЕ установлен. в то время как v1 и v1.1 были ранее установлены
MagenX
2
@srinivas Вы удалили папку мультимедиа из этого пути skin / adminhtml / default / default?
Прия Поннусамы

Ответы:

107

Важные заметки

Обратите внимание, что 1.9.3 отличается от 1.9.2.4 + SUPEE-8788. Вот разница между ними: https://gist.github.com/digitalpianism/14a15cd52baede0e5d600e8c653f33e9

Обновление 14 октября: v2 патча был выпущен (см. Ниже) По состоянию на 13 октября исправления для 1.5.x до 1.8.x были удалены с веб-сайта 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 (ранее было false) , будьте осторожны, если у вас есть какой-либо пользовательский модуль, использующий его.
  • Максимальные размеры для изображений продуктов теперь настраиваются в конфигурации. Примечание: это может привести к смешному сообщению об ошибке, если вы загружаете слишком большие изображения: Запрещен формат файла в Magento 1.9.2.2 после загрузки патча.

Известные проблемы SUPEE-8788 v2

Известные проблемы SUPEE-8788 v1

Известные проблемы 1.9.3.0

Изменить: так как список становится длинным, и это в значительной степени не по теме в этом ответе (не относится к SUPEE-8788), вы можете обратиться к этому сообщению для получения списка известных проблем 1.9.3.0: https: //magento.stackexchange. ком / а / 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 файл патча и снова разархивировать / разархивировать на сервере. и вуаля.


Извините, у меня не было никакого способа ответить на это

  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. Запустите патч

Работал для меня


infabo
источник
10
Вы читали вопрос ОП? fschmengler спросил: «Тем не менее: вы сталкивались с какими-либо проблемами совместимости или ошибками ПОСЛЕ применения патча?» Я действительно столкнулся с этой проблемой, применяя патч. Я предполагаю, что смысл этой темы в том, чтобы документировать возможные ошибки SUPEE-8788. Это включает - ИМХО - проблемы с самим патчем тоже.
Infabo
Работал угощение, спасибо! Что лучше сделать для ВСЕХ будущих патчей Magento?
KiwisTasteGood
или вы просто dos2unix PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh
fbtb
Как правило, в этом не было необходимости раньше, и я полагаю, что это не будет необходимо в будущем. Я полагаю, что загрузочные SWF-файлы были единственными двоичными файлами, поставляемыми с Magento 1.x - теперь их нет. Так что я не ожидаю каких-либо подобных проблем в будущем.
Infabo
3
При использовании FileZilla для загрузки .shфайла исправления в корневой каталог Magento установите тип передачи binaryперед загрузкой файла исправления. Ссылка
ForMat
25

Если вы ранее применяли SUPEE-1533, то исправление не будет включено app/code/core/Mage/Adminhtml/controllers/DashboardController.php.

Я решил это ...

  1. Вручную отменить изменения, внесенные в этот файл SUPEE-1533
  2. Применить SUPEE-8788
  3. Вручную повторно ввести изменения, внесенные в этот файл SUPEE-1533

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

mpchadwick
источник
Как я понял, вы вернули оригинальный патч 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
Icon
2
@JonHolland Потому что, ну, это Magento.
Агоп
25

Вот краткое изложение того, с чем я (и другие) сталкивался до сих пор, я пытаюсь сохранить его сортированным, не стесняйтесь добавлять или связывать все, что отсутствует, пост вики-сообщества:

Причины неудачного патча

Если вы видите «ОШИБКА: исправление не может быть успешно применено / отозвано», найдите в сообщениях журнала «Hunk # 1 FAILED», чтобы проверить, в каком файле произошел сбой исправления.

  • Очевидно, v2 патча для Magento 1.7 ожидает появления SUPEE-3941, хотя он существует только для Magento 1.8 и 1.9 . Если вы используете Magento 1.7 и видите ошибки, связанные с файлами downloader, загрузите SUPEE-3941 для 1.8 и примените его на 1.7, это должно работать. Смотрите ветку комментариев здесь: Security Patch 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

даже если ваш патч был успешным, это может означать, что вы скопировали файл functions.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
Я знаю, что Fishpig требует, чтобы вы это сделали. Так что, если у вас установлено, это будет проблемой для вас.
mpchadwick
1
Примечание: Я был смущен , и это ОЕ , который просит вас переопределить functions.php, а не Fishpig mwi-plugin.com/documentation/installation
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?
Брайан 'BJ' Хоффпауир младший
Я открыл тикет об этом в службе поддержки Magento, так как я уверен, что другие уже сделали это. Не слышали о версии патча v2, но они должны знать об этой проблеме.
квазиобъект
1
Будет v2, должна быть опубликована очень скоро. Да, я сообщил об этом, когда разместил здесь.
Матиас Цейс
1
Похоже, это сейчас исправлено
Erfan
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.

Икона
источник
Нам отказали
datasn.io
@ 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 ... Я надеюсь, что они ответят
Icon
2
Я получил ответ от лидера сообщества magento, в принципе, все в порядке - установить патч 3941 на версию 1.7.0.2.
Icon
15

Оригинальный DashboardController.php (1.7.0.2 - не запакован, только что из magento)

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

1533 Patched DashboardController.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
ИМО Желаемый конечный результат представляет собой сочетание двух. Это должен быть 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 в корневую папку magento и распакуйте через SSH Putty.

Шаг 4. Запустите патч: - $ bash PATCH_SUPEE-8788_CE_1.9.2.4_v1-2016-10-11-07-03-46.sh

* Примечание: файл патча содержит целые двоичные файлы в текстовом формате. Поэтому при загрузке SSH-файла 8788 с патчем безопасности без 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.

mpchadwick
источник
Вы уже нашли решение для этого? Я исправил это, заменив $ 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 .

Я временно переименовал папку в «загрузчик», правильно применил патч, а затем переименовал его с секретным именем.

TheTrueTDF
источник
8

Патч на 1.9.0.0 тоже не работает (вероятно, с 1.8.0.0 до 1.9.0.1) из-за SUPEE-3941. 3941 исправляет загрузчик / lib / Mage / HTTP / Client / 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
infabo
источник
Я настроил файлы патчей для работы со всеми версиями Magento после установки всех предыдущих патчей: magentohosting.pro/files/MageHost.pro_fixed_SUPEE-8788_v2.zip
Йерун Вермёлен - 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'), примените исправление и повторите изменение.
Джо
Спасибо, Джо. Просто возвращался сюда, чтобы опубликовать ту же информацию. Ты подтолкнул меня на это! Вот что я получаю за то, что ложусь спать. :)
TunaMaxx
Была такая же проблема, это решило ее. Спасибо!
dafyddPrys
8

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

Это подтвердил менеджер сообщества Magento. 13 октября, 15:00 по восточному времени. Все патчи для версий ниже 1.9 удалены из списка загрузки https://www.magentocommerce.com/download?_ga=1.236497153.1889606568.1445610645 См. Сообщение: https://community.magento.com/t5. / Security-Патчи / SUPEE-8788-И-SUPEE-1533-Несовместимые-Hunk ошибок / тр / 50514 / выделить / ложь # M1805

Икона
источник
1
Если обновленный патч имеет тот же результат, что и наши ручные исправления, и я надеюсь, что это так, то я не вижу проблемы. Обновленный патч не понадобится, и будущие патчи не увидят разницы.
Фабиан Шменглер
1
@fschmengler очень похож на несовместимость PHP 5.5 для SUPEE-7405 IMO. Патч будет отражать ручное исправление.
Рафаэль на цифровом пианизме
1
@fschmengler Насколько мне известно, magento снова выпустит точно такой же патч с исправлениями. Я догадываюсь, что лучше всего удалить старый патч (самостоятельно измененный) и установить новый (возможно, релиз на следующий день. К завтрашнему дню у нас должно быть обновление. Спасибо за помощь!
Icon
Я не сомневаюсь в ценности этого вклада, но придерживаясь стиля вопросов и ответов, этот ответ не кажется мне ответом, скорее обновлением, которое @fschmengler может добавить к своему первоначальному вопросу (или вы можете добавить его к Сообщество вики ответит).
7
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 пианизма
Любая идея, как преодолеть ошибку Curl.php при установке SUPEE 8788 на версиях 1.6 и 1.7?
Иконка
8

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

Чтобы воспроизвести, отредактируйте загружаемый продукт и перейдите на вкладку Загружаемая информация :

  1. Откройте строку Samples аккордеона и найдите файл сэмпла.
  2. В строке Links аккордеона найдите ссылку для скачивания
  3. Нажмите « Загрузить файлы» в разделе «Ссылки».

Загрузчик загружает файл примера вместо загружаемого файла ссылки, и файл, который вы просматривали в разделе загружаемых ссылок, исчезает.

Я смог воспроизвести это на ванили, пропатчен 1.7.0.2 CE установить.

Лаура
источник
Оказывается, это поведение базовой библиотеки JS, используемой для загрузки: github.com/flowjs/flow.js/issues/76
Лора,
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 () (так как я хочу убедиться, что все разработчики используют режим Developer on).

dimasdwika
источник
2
Теперь, применив V2 патча, я столкнулся с той же проблемой исправления EE1.12. Похоже, что этот файл изменился в какой-то момент между 1.12 и 1.14, но не как часть патчей
Chris
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

Без этого логин не работает на одностраничном оформлении заказа (он просто не работает без ошибок).

исправлять

Formkey должен быть вставлен как в следующем патче:

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>
fheyer
источник
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 измененный файл. Что вы думаете о моем методе?
Иконка
Значок, посмотрите на мой diff выше, по-вашему, вам нужно изменить обратно строку, обновленную SUPEE 1533, в 'app / code / core / Mage / Adminhtml / Block / Dashboard / Graph.php', а также, если у вас уже есть SUPEE 1533 заделаны. В противном случае Graph.php запустит параметры формата json, и вы не сможете расшифровать его с помощью unserialize ()
Уильям Чжао
4

Захват Authorize.net нарушен после применения патча. Авторизация работает хорошо, но при получении платежа к счету выдается «Ошибка шлюза: требуется номер кредитной карты» . Файл журнала платежей показывает x_typeзначение param auth_capturepass, но до патча, который он использовал для прохождения, prior_auth_captureэто работало хорошо. Кто-нибудь испытывает эту проблему?

ОБНОВЛЕНИЕ: Исправление для этой проблемы - Authorize.net не захватывает

Kalpesh
источник
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 У меня есть использовал свежую копию magento 1.9.3.1

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

Использование загружаемых продуктов и переход к разделу «Загружаемая информация» -> «Образцы», когда я пытаюсь добавить новую строку (одну или несколько), нажав «X», я больше не могу удалить строкувведите описание изображения здесь

Я не настолько специалист в Magento, я пытаюсь найти решение. Если я найду, я опубликую, если у кого-то из вас есть какое-то решение, это будет очень и очень полезно для меня

ОБНОВЛЕНИЕ : с помощью инспектора Chrome я увидел эту ошибку:введите описание изображения здесь

******* Я НАШЕЛ РЕШЕНИЕ *******

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

Откройте samples.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. Так что, может быть, просто подержи немного лошадей.

ENTERPRISE EDITION 1.14.3, COMMUNITY EDITION 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. Мы работаем над устранением этой проблемы и предоставим новые исправления в ближайшие 1-3 дня. До тех пор мы удаляем эти версии патча 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 магазина сегодня, используя мой метод вместо исправлений. Все работают без проблем.

ADDISON74
источник
Это хорошо, если вы используете самую последнюю версию и для патча есть новая версия, как это было в случае с 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.

... проверка файла app / code / core / Mage / Adminhtml / controllers / IndexController.php Ханк # 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 И говорит, что эти блоки игнорируются.

примечание: в моем каталоге Unserialized / Reader ничего нет. Совершенно пусто примечание: Curl.php находится в директории загрузчика. Не переименован. Он заканчивается, но я не вижу удаленных SWF-файлов. Я не вижу патч, примененный в списке apply.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.

Rann
источник
3

Если вы получаете Hunk #1 failedна ххх Ошибка, это то, что я сделал

Я получил Hunk #1 failed at 373. Ошибка !! после линии

проверка загрузчика файлов / lib / Mage / HTTP / Client / Curl.php

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

Тогда я проверил:

/app/etc/applied.patches.list и все вроде хорошо

Shan
источник