Сила в цифрах
Для качественного приема платежей ArsenalPay проверяет каждую платежную транзакцию используя множество параметров, чтобы отследить ошибки или риски связанные с фродом. Эти параметры и алгоритмы системы мониторинга регулярно обновляются и дорабатываются, чтобы быть готовыми к новым типам ошибок или поведению злоумышленников.
Мы хотели бы привести иллюстрацию как это применяется в реальной жизни.
Как ошибки влияют на обычных клиентов и как на мерчантов
В один из дней система мониторинга обнаружила значительные отклонения в количестве успешно принятых платежей только по картам одного из региональных банков. Платежей стало значительно меньше, это означало, что люди не могли заплатить за услуги и товары используя карты этого банка. Наши компании партнеры в свою очередь испытывали сложности не получая вовремя платежи.
Для клиентов ошибка выглядела следующим образом: при платеже на сайте после ввода всех карточных данных, банк-эмитент карты автоматически переводит плательщика на свою страницу для ввода кода 3DS. Но в этой ситуации страница ввода 3DS не отображалась, клиент вместо неё видел пустой белый фон.
Как результат, ввести код 3DS плательщик не может, платеж банком-эмитентом не подтверждается, возникает ошибка, платеж не совершается, бизнес не получает деньги, а клиент не получает необходимую ему услугу или товар.
Хотя доля выпущенных карт этого регионального банка в масштабах России и невелика, для наших партнеров, которые находятся в одном и том же регионе с банком, эта ошибка всё равно является существенной, так как практически все карты имеют хождение среди местного населения. Говоря простыми словами, местные жители не могли заплатить за услуги местных компаний.
Немедленные результаты
Проанализировав 3DS страницу банка-эмитента, наши специалисты выяснили, что ее отображать отказываются все браузеры (пустая страница), в консоли отладки при этом выводят ошибку:
Content Security Policy: Ignoring ‘x-frame-options’ because of ‘frame-ancestors’ directive. Load denied by X-Frame-Options: page does not permit cross-origin framing.
Ошибка возникает из-за установленных банком-эмитентом значений заголовков страницы, которые запрещают отображение внутри платежной страницы и сайта:
X-Content-Security-Policy: allow 'self' X-Frame-Options: SAMEORIGIN
Механизм отображения внутри iframe используют практически все платежные системы, это означало, что проблема скорее всего коснулась не только нашего платежного сервиса.
Мы связались со специалистами банка, сообщили о проблеме и поделились рекомендациями по исправлению ситуации. Нами было предложено настроить заголовки безопасности X-Frame-Options так, чтобы позволять открываться 3DS странице банка в iframe других сервисов без указания конкретных доменов, либо с перечислением конкретных сайтов, кому может быть разрешено использовать страницу ввода кода 3DS.
Надо отдать должное банку, их специалисты очень оперативно отреагировали и исправили ошибку, настроив заголовки безопасности. Онлайн оплата была полностью восстановлена, прием платежей стал осуществляться в рабочем режиме. Приятным дополнением была благодарность от лица банка. По их информации, ситуация возникла после применения нового релиза банковской подсистемы обслуживающей платежные карт. Обновление программных средств это регулярный процесс и подобная ситуация может произойти в любом банке. Именно поэтому очень важно постоянно мониторить, контролировать и измерять процесс онлайн оплаты, чтобы клиенты не страдали, а бизнес наших партнеров рос и процветал.