Сбой PayPal или взлом? Платежи отправлялись на случайный адрес
Я либо рассматриваю попытку взлома, либо временный сбой PayPal здесь. Мы работаем с PayPal Australia, используя PayPal Express. Мы находимся на Magento CE 1.7.0.2.
К счастью, у меня был модуль PayPal Express на отладке до конца. Что мне удалось найти после добрых 4 часов, так это то, что администратор Magento не был скомпрометирован или "неправильный адрес электронной почты" не был жестко закодирован в файловой системе (согласно метке времени и журналам сервера - кто знает, если это хакер, который приводит в порядок эти вещи вверх). Компромисс с базой данных также выглядит маловероятным. Мы запускаем RDS на EC2.
Эта проблема затронула 3 платежа. В журналах сначала я вижу:
[url] => https://api-3t.paypal.com/nvp
[SetExpressCheckout] => Array
(
[PAYMENTACTION] => Sale
[AMT] => 999.00
[CURRENCYCODE] => AUD
[RETURNURL] => https://foobar/paypal/express/return/
[CANCELURL] => https://foobar/paypal/express/cancel/
[INVNUM] => 9999999
[SOLUTIONTYPE] => Mark
[GIROPAYCANCELURL] => https://foobar/paypal/express/cancel/
[GIROPAYSUCCESSURL] => https://foobar/checkout/onepage/success/
[BANKTXNPENDINGURL] => https://foobar/checkout/onepage/success/
[LOCALECODE] => en_AU
[SUBJECT] => [email protected]
[ITEMAMT] => 999.00
Очевидно, что неправильной частью является [SUBJECT]
, где "возможный хакер" каким-то образом вставил свою электронную почту, я не знаю, как. Но, как ни странно, если это была работа хакера, то он/она любезно вернул нам все обратно и стер все следы, сбросил временные метки и удалил записи из журналов сервера.
После 3 платежей, отправленных на неправильный адрес электронной почты, это отображается в журнале:
[exception] => Requested [email protected] and configured [email protected] merchant emails do not match.
Затем при заказе после этого платежи возобновляются по нужному адресу.
Итак, это много справочной информации, но мой вопрос - когда точное время, когда модуль PayPal регистрирует массив [SetExpressCheckout]
? Возможно ли, что Magento уже получил ответ от PayPal на этом этапе - или это электронное письмо определенно от нашего сервер?
Мы используем оформление заказа на одну страницу Magento.
РЕДАКТИРОВАТЬ: Я замечаю, что единственная запись в журнале также содержит ответ PayPal, поэтому во время регистрации этой информации в Magento она уже была получена от PayPal. Очень загадочный материал, но тем не менее интересный.
1 answers
Я написал следующий скрипт bash, чтобы получать уведомления, если эта проблема повторится. Это действительно похоже на сбой PayPal, так как было нетрудно найти других людей, у которых была такая же проблема в прошлом:
Http://www.magentocommerce.com/boards/viewthread/323726 / http://www.magentocommerce.com/boards/viewthread/333281/
В любом случае, вот сценарий, если он кому-нибудь поможет. У меня есть это в моем кронтабе, чтобы запускать каждые 5 минут.
#/bin/bash
if fgrep -e '[SUBJECT]' -e '[PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID]' -e '[business]' -e '[receiver_email]' /var/www/var/log/payment_paypal_express.log | fgrep -v 'paypal@foobar';
then
fgrep -e '[SUBJECT]' -e '[PAYMENTREQUEST_0_SELLERPAYPALACCOUNTID]' -e '[business]' -e '[receiver_email]' /var/www/var/log/payment_paypal_express.log | fgrep -v 'paypal@foobar' | mail -s 'PayPal Express Alert' me@foobar
mv /var/www/var/log/payment_paypal_express.log /var/www/var/log/payment_paypal_express_$(date -d "today" +"%Y%m%d%H%M").log
else
echo 'All good.' | mail -s 'PayPal Express OK' me@foobar
fi
Хрон установлено для запуска каждые 5 минут:
*/5 * * * * /bin/sh /home/ubuntu/paypal-express-check.sh
Очевидно, что вам потребуется изменить paypal@foobar
на адрес PayPal магазина, me@foobar
на свой собственный и изменить каталоги в соответствии с вашей файловой системой.