Как совершать безопасные онлайн-платежи в вашем приложении

Опубликовано: 2021-10-05

По мере того как наши приложения преодолевают ряд пресловутых хакерских атак, которые, казалось бы, возникают из ниоткуда и неожиданно, чтобы бросить вызов безопасности платежей в мобильных приложениях, стремление к безопасности мобильных приложений в больших и малых компаниях уже начало набирать обороты. Повсюду, от магазина электронной коммерции до финансовых систем высших учебных заведений, люди запрашивают разработку приложения для обеспечения безопасности онлайн-платежей. В наши дни самый популярный запрос: как создать что-то с более высоким уровнем защиты? Мы постараемся выделить его здесь.

Secure - это новый черный цвет.

Помните недавнюю киберэпидемию, которая вспыхнула на Украине и с готовностью захватила весь мир? Нападения, подобные этому, доказывают, что все системы безопасности онлайн-транзакций, которые мы ищем, еще несовершенны - что однажды все механизмы могут внезапно поддаться мошенничеству. Существуют различные виды мошенничества, но большинство хакеров нацелены на безопасность финансовых данных, в первую очередь банковских счетов и транзакций.

К сожалению, нет панацеи для разработки приложений мобильного банкинга от кибератак, но, безусловно, есть вещи, которые повышают безопасность платежей и транзакций. Во-первых, есть 3 типа платежей, которые может включать ваш проект с безопасностью для мобильных приложений:

  • Входящий

  • Исходящий

  • Внутрисистемные транзакции

Давайте возьмем популярное мобильное приложение Uber и изучим все три категории на его примере. Входящие платежи - это платежи, проводимые клиентом за определенный продукт или услугу, которые ваше приложение помогает ему выполнять; как только поездка на Uber закончится, с вашей кредитной карты будет снята оплата. Исходящие платежи - это платежи, производимые самой системой сотрудникам, которых она поддерживает. Когда довольный клиент доставляется водителем Uber в пункт назначения, система удерживается в течение определенного периода времени, а затем автоматически переводит деньги водителю. Этот период ожидания разработан таким образом, чтобы у пользователя была возможность пожаловаться на качество полученной услуги. Этот вариант требует определенного уровня внимания со стороны пользователя - по истечении этого периода клиент больше не может заполнять отчет о жалобе. Как исходящие, так и входящие финансовые транзакции требуют интеграции в систему стороннего поставщика платежей.

Однако с внутрисистемными транзакциями все работает по-другому - например, финансовые операции между двумя пользователями внутри системы. На этом этапе транзакции также могут функционировать без интегрированного поставщика платежей из-за всех взаимодействий, происходящих в упомянутой системе. Описанные ранее методы сбора комиссии широко используются во всех видах финансовых приложений, наряду с другими функциями.

Как защитить свое мобильное приложение? Хорошо,

мобильный банкинг

... Вам нужно, чтобы они присутствовали.

«Каждый создатель всегда может присоединиться к его идеям - ради максимального удобства использования продукта!»

Практически каждый мобильный кошелек, в основе которого лежит безопасность для приложений мобильного банкинга, нуждается в определенном количестве функций, чтобы сделать его привлекательным и «используемым пользователем». Вот краткий список основных функций:

  • Доступ к вашему банковскому счету в любое время, будь то дождь или солнце

  • Возможность совершать финансовые операции, в частности:

а) Переведите свои средства на любой счет в этой банковской системе.

б) Переводите свои средства на любой счет, кредитную или дебетовую карту по всему миру.

в) Оплачивайте любые услуги связи - заряжайте свой мобильный телефон, платите интернет-провайдеру и т. д.

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

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

  • Возможность управлять своими картами (заблокировать / разблокировать их, установить лимит онлайн-платежей, изменить PIN-код или коды CW2, добавить, заказать или закрыть существующую карту).

  • Функция дотации будет очень полезна для банковского приложения, предполагая, что вы и ваши клиенты участвуете в благотворительности любого рода.

  • Возможность получить доступ к геолокации пользователя и показать ему ближайшие банкоматы и отделения банка.

Объем функций не ограничивается упомянутым выше - это те, о которых наши бизнес-аналитики могли бы подумать при рассмотрении того, как защитить онлайн-транзакции, но каждый создатель всегда может присоединиться к его идеям - ради максимизации удобство использования продукта!

Количество и сложность упомянутых функций потребуют двойной безопасности для мобильного банковского приложения. Но как сделать ваши финансовые транзакции в Интернете безопасными?

1. Системе не нужно сохранять учетные данные пользователей.

После завершения входящих, исходящих или внутрисистемных операций необходимо, чтобы вся коммерческая информация пользователя не передавалась поставщику платежных услуг при обеспечении безопасности онлайн-транзакций. У провайдера обычно есть хранилище и встроенная система токенизации, которая проводит и защищает все финансовые операции. На вашем веб-сайте (или в вашем приложении) должна быть вставлена ​​определенная форма, которая не является частью всего кода проекта, как показано ниже на изображении:

Схема оплаты Stripe

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

Несмотря на то, что этот метод действительно широко известен, в нем есть определенный подводный камень. Когда ваше приложение отправляет данные карты на сервер прямо в платежную службу, в нем не указывается точная сумма перевода. Таким образом, гипотетически существует вероятность того, что система снимет больше денег, чем должна - по ошибке или из-за ошибки системы. Эта проблема еще не решена, поэтому, хотя Stripe - удобное решение, при котором пользователь никуда не перенаправляется, ему по-прежнему не хватает стабильного безопасного процесса.

Другой широко известной системой является PayPal с кнопкой «оплатить через PayPal».

Схема PayPal

PayPal работает по принципу «обработки платежей через веб-приложение»: когда пользователь попадает на экран оплаты, он автоматически передает права пользователя платформе PayPal. Когда в дальнейшем клиент платит через службу, ваше мобильное банковское приложение должно создать объект, отправленный в PayPal, который сообщает, был ли платеж получен или нет.
Ключевым моментом, который отличает мобильные платежные шлюзы Stripe и PayPal, является то, что PayPal позволяет вам видеть фактическую сумму переведенных средств, но перенаправляет вас на их платформу; с другой стороны, Stripe не заставляет вас переходить по каким-либо внешним ссылкам, но «точная сумма» проблем с безопасностью мобильных платежей может отвлекать ваших будущих пользователей.

2. Система должна содержать токены в целости и сохранности.

Если вы создаете безопасное мобильное приложение с возможностью подписки, оно должно храниться в безопасности в базе данных службы. Структура проекта должна позволять хранить эти токены только там - за исключением общедоступного профиля или выбора любой другой организации.

Другой способ защиты финансовых транзакций - зашифровать HTTPS-защиту в структуре веб-сайта. Если их нет на сайте - пользователь не должен переводить деньги на сторонний ресурс, чтобы обезопасить свои финансовые операции в Интернете.

3. Постарайтесь избежать ошибки «Исключение, выплата, повтор».

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

Как этого избежать:

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

Короче говоря, приложение для безопасного банкинга требует соблюдения следующих правил:

  • Нет финансовых учетных данных пользователей для хранения

  • Никаких переводов на платформы без HTTPS-защиты.

  • Каждый ответ или запрос сервера, каждое действие, веб-перехватчик или обратный вызов должны регистрироваться с максимальной детализацией.

  • Процесс оплаты должен быть максимально упрощен, максимально полагаясь на поставщика платежных услуг, избегая создания собственного электронного кошелька, где это возможно.

  • Всегда уделяйте время проверке работы приложения, так как только в процессе тестирования можно предсказать все отрицательные случаи.

  • Настоятельно рекомендуется использовать веб-хуки и обратные вызовы.

  • Всегда проверяйте отчет, который вам предоставляет платежная система, так как вы можете определить, возникает ли проблема прямо там.

Мобильность всего.

Одна из самых распространенных тенденций, которые сегодня наблюдаются в каждом бизнесе, - это переход на мобильные устройства с помощью безопасности мобильных приложений и шифрования мобильных приложений. От огромных финансовых корпораций и до самых маленьких магазинчиков на углу, эти умные устройства заняли все, что есть в мире. Более того, краткий обзор аналитических данных Statista показывает, что эта тенденция будет только расти в ближайшие 7 лет.

Независимо от того, какую платформу вы выберете - безопасность приложений iOS или Android, защита онлайн-банкинга - сложный, но по-настоящему полезный процесс. Только представьте, у вас есть потенциал развить чувство безопасности для пользователей и их средств, чтобы позволить миллионам людей спокойно отдыхать по ночам… разве это не то, что может изменить жизнь в будущем?

Авторы Алекс Аверьянов, Олег Царенко и Элина Бессарабова.