Оформление заказа перенаправляется обратно в корзину после выбора способа доставки


Проблема: Оформление заказа Magento перенаправляется обратно в корзину после выбора способа доставки

Окружающая среда: Magento 1.4.0.1, CentOS 5.5 (за прокси-сервером nginx/0.8.53), Apache/2.2.3, Linux 2.6.18-194.26.1. el5xen x86_64

Шаги по воспроизведению:

Подсказки:

  • Используя Firebug, я обнаружил, что после последнего нажатия кнопки ПРОДОЛЖИТЬ, чтобы выбрать способ доставки, Запрос XHR сделан против https://gentlemanjoe.com/index.php/checkout/onepage/saveShippingMethod /, и этот запрос завершается ошибкой HTTP 503. Вот подробные сведения об ошибке:
There has been an error processing your request Notice: Undefined
index: SESSIIID  in
/var/www/gentlemanjoe.com/app/code/core/Mage/Payment
/Model/Method/Cc.php on line 388
Trace:
#0 /var/www/gentlemanjoe.com/app/code/core/Mage/Payment/Model/Method/Cc.php(388):
mageCoreErrorHandler (8, 'Undefined index...', '/var/www/gentle...',
388, Array)
#1 /var/www/gentlemanjoe.com/lib/Varien/Autoload.php(93): include('/var/www/gentle...')
#2 [internal function]: Varien_Autoload->autoload('Mage_Payment_Mo...')
#3 /var/www/gentlemanjoe.com/app/code/core/Mage/Payment/Model/Method/Ccsave.php(29):
spl_autoload_call ('Mage_Payment_Mo...')
#4 /var/www/gentlemanjoe.com/lib/Varien/Autoload.php(93): include('/var/www/gentle...')
#5 [internal function]: Varien_Autoload->autoload('Mage_Payment_Mo...')
#6 [internal function]: spl_autoload_call('Mage_Payment_Mo...')
#7 /var/www/gentlemanjoe.com/app/code/core/Mage/Core/Model/Config.php(1204):
class_exists('Mage_Payment_Mo ...')
#8 /var/www/gentlemanjoe.com/app/Mage.php(432): Mage_Core_Model_Config->getModelInstance('payment /method_...',
Array)
#9 /var/www/gentlemanjoe.com/app/code/core/Mage/Payment/Helper/Data.php(70):
Mage::getModel('payment /method_...')
#10 /var/www/gentlemanjoe.com/app/code/core/Mage/Payment/Block/Form/Container.php(117):
Mage_Payment_Helper_Data- >getStoreMethods('1',
Object(Mage_Sales_Model_Quote))
#11 /var/www/gentlemanjoe.com/app/code/core/Mage/Payment/Block/Form/Container.php(44):
Mage_Payment_Block_Form_Container- >getMethods()
#12 /var/www/gentlemanjoe.com/app/code/core/Mage/Core/Block/Abstract.php(211):
Mage_Payment_Block_Form_Container- >_prepareLayout()

... Я оборвал его для краткости. Вы можете увидеть полную трассировку стека по адресу https://gentlemanjoe.com/errors/report.php?id=448265828398&skin=default

Предыстория:

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

Есть какие-нибудь идеи?

Author: Robbie Averill, 2016-06-03

1 answers

Для меня это явно звучит так, как будто ваш Magento сильно поврежден.

Я не могу подтвердить это, потому что URL, который вы вставили, ссылается на веб-сайт Shopify, но позвольте мне объяснить.

Относительно ошибки

Эта ошибка возникает в очень важном файле с точки зрения безопасности, app/code/core/Mage/Payment/Model/Method/Cc.php являющемся файлом, который обрабатывает способ оплаты кредитной картой.

Ошибка, возникшая здесь в файле ядра, уже является красным флагом.

Кроме того, строка 388 не существует в родном Установите Magento 1.4.0.1, вы можете найти исходный файл здесь: https://github.com/OpenMage/magento-mirror/blob/1.4.0.1/app/code/core/Mage/Payment/Model/Method/Cc.php

Это супер красный флаг.

Две возможности:

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

К сожалению, у меня плохое предчувствие, что вы находитесь во втором случае.

Это плохое чувство возникает из-за того, что ключ, которого не существует и который вызывает ошибку, является SESSIIID. Мне кажется, что поврежденный файл пытается украсть идентификаторы сеанса, чтобы получить данные кредитной карты.

Одна из самых известных уязвимостей Magento, связанная с использованием кражи кредитных карт SESSIID (с двумя i, в вашем коде их три) и я уверен, что именно этого хотел добиться хакер: https://www.byte.nl/blog/widespread-credit-card-hijacking-discovered

Устранение проблемы

Во-первых, я предлагаю вам запустить веб-сайт против MageReport: https://www.magereport.com/

Это поможет вам обнаружить уязвимости вашего веб-сайта.

Во-вторых, я предлагаю вам откатить все основные файлы к исходному одни.

Мое личное предложение состояло бы в том, чтобы использовать плагин MageRun, разработанный AOE, чтобы узнать, какие основные файлы были изменены: https://github.com/AOEpeople/mpmd#command-mpmdcorehacks

Наконец, как только вы вернете основные файлы в исходное состояние, я предлагаю вам установить все недостающие исправления . Вы можете скачать их здесь: https://www.magentocommerce.com/download

 0
Author: Raphael at Digital Pianism, 2016-06-08 14:15:59