Magento выпустила новое исправление безопасности для M1 и обновления для M1 и M2.
Какие проблемы я должен учитывать при обновлении или применении этого патча?
SUPEE-10570, Magento Commerce 1.14.3.8 и Open Source 1.9.3.8 содержат множество улучшений безопасности, которые помогают закрыть удаленное выполнение кода (RCE), межсайтовый скриптинг (XSS и др.). Эти выпуски также включают небольшие функциональные исправления, перечисленные в заметки о выпуске
MAGENTO 2.2.3, 2.1.12 И 2.0.18 ОБНОВЛЕНИЕ БЕЗОПАСНОСТИ
Magento Commerce и Open Source 2.2.3, 2.1.12 и 2.0.18 содержат множество улучшений безопасности, которые помогают закрыть межсайтовый скриптинг (XSS), удаленное выполнение кода (RCE) пользователя с проверкой подлинности и другие уязвимости. Релизы включают дополнительные функциональные исправления. Чтобы узнать больше о функциональных исправлениях, ознакомьтесь с заметками о выпуске для Magento Commerce 2.0.18, 2.1.12, 2.2.3 и Magento Open Source 2.0.18, 2.1.12, 2.2.3.
Ответы:
Вот список измененных файлов патчем SUPEE-10570:
РЕДАКТИРОВАТЬ
Наконец, после развертывания на моем сайте prod (CE 1.7.0.2), я заметил критическую проблему с блокировкой (процесс проверки заблокирован).
Контекст: после адреса шага 1, я непосредственно создаю И регистрирую клиента, он должен видеть только следующий шаг оформления заказа.
Проблема: после supee-10570 процесс оформления заказа прерывается после шага 1 (в случае создания учетной записи), и клиент перенаправляется на домашнюю страницу (с пустой корзиной для покупок + выход из системы) = невозможно добиться его оформления.
Аварийное исправление: в случае, если вы столкнулись с похожей проблемой при оформлении заказа / сеансе клиента, прокомментируйте строки 414-430 из app / code / core / Mage / Core / Model / Session / Abstract / Varien.php (те, которые были добавлены патчем , Смотри ниже).
РЕДАКТИРОВАТЬ (2)
Я думаю, что следующее условие всегда будет возвращать false (Mage_Core_Model_Session_Abstract_Varien в строках 414-419, особенно в строках 417 + 418).
VALIDATOR_PASSWORD_CREATE_TIMESTAMP всегда будет больше, чем VALIDATOR_SESSION_EXPIRE_TIMESTAMP. Отметка времени истечения сеанса переопределяется при создании учетной записи, поэтому неизбежно старше, чем init init.
Так, например, если вы создадите клиента во время оформления заказа, будет возвращено значение false, и клиент будет просто выгнан (= конец оформления заказа, перенаправление на домашнюю страницу и корзина пуста). Довольно плохо.
Я сообщил об этой проблеме команде magento. Я дам отзыв здесь как можно скорее.
РЕДАКТИРОВАТЬ (3)
Новый патч - wip (на странице загрузки патента magento написано «SUPEE-10570 для CE 1.7.0.0 - ОБНОВЛЕНО ОБНОВЛЕНИЕ ПАТЧА, НЕ ИСПОЛЬЗУЙТЕ (0,06 МБ)»).
РЕДАКТИРОВАТЬ (4) ~ 1 месяц после первоначальной проблемы блокировки сообщили
Здравствуй! Надеюсь, вы все товары (и надеюсь, что вы не сохранили первоначальное состояние патча до сих пор, если только доход от вашего бизнеса, вероятно, серьезно не снизился ^^).
Я заметил следующее предложение на официальной странице: «Magento теперь предоставляет обновленный патч (SUPEE-10570v2), который больше не вызывает этой проблемы. Обратите внимание, однако, что этот новый патч больше не защищает от двух связанных с обработкой сеансов низкого риска проблемы безопасности, от которых защищено исправление SUPEE-10570 ». с официальной страницы supee-10570.
На странице релиза мы наконец можем найти файл v2 (PATCH_SUPEE-10570_CE_v1.7.0.2_v2-2018-03-29-08-52-37.sh).
Я исследовал изменения в деталях. Наконец, кажется, команда magento просто решила отказаться от части патча, касающейся безопасности. Надеюсь, что эта дыра в безопасности не приведет к серьезным повреждениям (согласно официальной заметке, она не критична).
После возврата v1 + применить v2, пожалуйста, позаботьтесь о том, чтобы следующие файлы были возвращены в исходное состояние (до применения v1):
PS: очевидно, что некоторые другие файлы также изменены, пожалуйста, проверьте соответственно.
источник
app/etc/applied.patches.list
(не уверен, что это было в примечаниях к выпуску с самого начала)
Известные проблемы
Эти две известные проблемы связаны с использованием тегов HTML в атрибуте SKU продукта:
Invalid value in SKU column. HTML tags are not allowed.
HTML tags are not allowed in SKU attribute.
Из примечаний к патчу :
Если не удается применить исправление во время исправления
lib/Zend/Mail/Transport/Sendmail.php
, это может означать, что ваша установка Magento была ранее исправлена с помощью SUPEE-9652v1 вместо SUPEE-9652v2. Рекомендуемое решение - отменить исправление SUPEE-9652v1 и применить SUPEE-9652v2 до применения SUPEE-10570.источник
У меня была та же проблема, что и у @DarkCowboy после применения патча к Magento CE 1.7.0.2.
После выбора регистрации в качестве нового клиента во время оформления заказа, размещение заказа создает как заказ, так и клиента, но вместо отображения страницы успеха заказа я перенаправляюсь на домашнюю страницу и выхожу из системы.
Решение, которое я нашел, состоит в том, чтобы изменить порядок блоков кода в изменениях
app/code/core/Mage/Core/Model/Session/Abstract/Varien.php
.Сравнивая исправленную версию с тем же файлом в Magento CE 1.9.3.8, я обнаружил, что новые блоки для проверки истечения сеанса и отметки времени пароля расположены в другом порядке.
Magento CE 1.9.3.8 - строки 476-491:
Magento CE 1.7.0.2 - Линии 414-430:
Это приводит к значению
$validatorData[self::VALIDATOR_PASSWORD_CREATE_TIMESTAMP]
, превышающему$sessionData[self::VALIDATOR_SESSION_EXPIRE_TIMESTAMP] - $this->getCookie()->getLifetime()
значение, означающее, что метод всегда возвращает значение false, и проверка завершается неудачно.Изменение кода в Magento CE 1.7.0.2 в соответствии с версией в Magento CE 1.9.3.8 решает проблему.
Полученный код для Magento CE 1.7.0.2 - строки 414-430:
Я бы предложил создать свой собственный файл патча и применить его непосредственно к файлу ядра (именно так я обычно подхожу к исправлению ошибок в ядре). Это позволит легко вернуться, если Magento выпустит версию 2 патча.
источник
useValidateSessionPasswordTimestamp()
возвратfalse
. (изменение одной строки в одном файле)Мы увидели пустую страницу в / checkout / cart после применения SUPEE-10570 и компиляции. Просто для пояснения: с деактивированным компилятором все шло хорошо, с активированным компилятором мы могли видеть только пустую страницу корзины при входе в систему без каких-либо записей журнала (даже после активации всех возможных журналов и режима разработчика).
Решением было изменить функцию
getPasswordTimestamp()
вapp/code/core/Mage/Customer/Helper/Data.php
(конечно, означаетapp/code/local/Mage/Customer/Helper/Data.php
:!) И использоватьMage::getSingleton('core/resource')
вместоMage::getModel('customer/customer')
илиMage::getSingleton('customer/session')
. Так что замените всю функцию, например, следующими строками кода:После перекомпиляции проблема исчезла. Кто-нибудь еще с этой проблемой?
Объяснение на немецком здесь .
источник
1.7.0.0
Патч:
PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh
Эта ошибка возникает, если вы ранее не применяли SUPEE-9652 или SUPEE-9767
Примените эти исправления, чтобы исправить проблему.
источник
1.7.0.0
Патч
PATCH_SUPEE-10570_CE_v1.7.0.0_v1-2018-02-23-06-37-58.sh
файлapp/code/core/Mage/Core/Model/Session/Abstract/Varien.php
Патч для 1.7.0.0 добавляет только одну константу:
Тем не менее, он добавляет использование двух новых констант, а именно:
Это приводит к ошибке:
Исправление:
Добавьте определение для этой второй константы выше или ниже первой константы, добавленной этим патчем.
До сих пор я не видел эту проблему ни в одном из 1.9. или патчи 1.14.x, потому что они определяют константу правильно.
источник
const VALIDATOR_SESSION_EXPIRE_TIMESTAMP = 'session_expire_timestamp';
в начало файла, как это делается в большинстве других версий этого патча.Прежде всего вы должны проверить, если вы ранее применяли правильную версию SUPEE-6788 или SUPEE-7405, если нет, отменить неправильную версию, а затем применить правильную версию SUPEE-6788 / SUPEE-7405.
Затем попробуйте снова применить SUPEE-10570.
источник
Приведенные ниже файлы обновляются / добавляются после примененного патча SUPEE - 10570 в EE
@DarkCowboy предоставил список файлов, отличных от файлов EE :
Некоторые важные заметки
password_created_at
создан в таблице атрибутов клиента.Эти выше файлы используются для создания и проверки. проблема сеанса возникает при проверке или проверке входа пользователя в систему, вышеупомянутый любой из файлов перезаписывается в вашем локальном пуле или любой
password_created_at
атрибут создается в вашей таблице атрибутов клиента, а правильное значение сохраняется в этой таблице.источник
Моя версия magento вер. 1.9.1.0.
Мы увидели пустую страницу в / checkout / cart после применения SUPEE-10570 и компиляции. Просто для уточнения: С отключенным компилятором все шло хорошо, с включенным составитель мы только могли видеть пустую корзину страницы , когда вошли в системе без каких - либо записей в журнале (даже после активации всех возможных журналов и режима разработчика).
Причина:
функция getPasswordTimestamp будет вызываться два раза при входе в систему и посещении / оформлении заказа / корзине.
отключен компилятор, оба вызова работают.
включить компилятор только первый вызов работы, второй вызов не удалось.
Кто-нибудь может объяснить и дать хорошее решение?
источник
Проблемы с 1.7.0.2, которые я заметил, заключаются в следующем:
Добавить продукт в корзину и перейти к оформлению заказа
Нажмите «Зарегистрироваться»
ПРОБЛЕМА НАЧИНАЕТСЯ ЗДЕСЬ
5. Автоматически перенаправляется на ГЛАВНУЮ СТРАНИЦУ. Вы не видите подтверждение номера заказа. Но на самом деле заказ размещен и счет клиента создан.
источник
Я столкнулся с той же проблемой, Magento 1.9.3.8 добавил этот метод в класс Mage_Customer_Helper_Data
Если вы переопределите этот класс внутри локальной папки (не лучшая практика), у нас могут быть ошибки, сгенерированные этим классом.
источник
Этот патч сломал часть менеджера иерархии CMS для пользователей EE.
Это из-за следующей строки патча, которая отвечает за экранирование имен магазинов / веб-сайтов и исправление APPSEC-1873/1979/1980.
Он должен показывать селектор магазина слева, но вместо этого показывает HTML справа. Если вам действительно нужна эта функциональность, вы должны сделать запрос безопасности против функциональности, которая невелика.
источник
Та же самая ошибка, что и у Тайлера, в Magento 1.9.2.4 Patch PATCH_SUPEE-10570_CE_v1.9.2.4_v1-2018-02-28-04-53-53.sh
источник
Если у вас есть какой-либо инструмент обнаружения патчей, вам, вероятно, нужно изменить обнаружение,
SUPEE-9562
потому что онSUPEE-10570
изменяет тот же файл:источник
Патч был изменен Magento молча. Здесь показано с патчем для Magento 1.8.1.0-1.9.0.1. При первой загрузке я получил файл
Через несколько дней я получил следующий файл
Diff показывает, что предыдущий файл содержит файлы из Magento Enterprise Edition, которые содержат неправильную лицензию «Лицензионное соглашение конечного пользователя Magento Enterprise Edition». Это было исправлено в "Open Software License (OSL 3.0)".
источник
Вы можете получить следующую ошибку
Hunk #3 FAILED at 17
после строкиЭто произошло для меня в версии Magento 1.10.0.2EE. Это произошло потому, что патч SUPEE-6285 не был применен.
источник