Оформление заказа перенаправляется обратно в корзину после выбора способа доставки
Проблема: Оформление заказа 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
Шаги по воспроизведению:
- Добавьте товар и нажмите Оформить заказ
- https://gentlemanjoe.com/index.php/checkout/cart/
- ПРИСТУПАЙТЕ К ОФОРМИТЬ ЗАКАЗ
- https://gentlemanjoe.com/index.php/checkout/onepage/
- Экспресс-заказ ->ПРОДОЛЖИТЬ -> Заполнить форму -> Отправить по этому адресу ->ПРОДОЛЖИТЬ -> Способ доставки -> Наземная доставка (единственный выбор) - >ПРОДОЛЖИТЬ -> Перенаправляет обратно на https://gentlemanjoe.com/index.php/checkout/cart/
Подсказки:
- Используя 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.
Есть какие-нибудь идеи?
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