Jak dokonać bezpiecznych płatności online w swojej aplikacji?

Opublikowany: 2021-10-05

Ponieważ nasze aplikacje pokonują fale niesławnych ataków hakerskich, które wydają się wyrastać znikąd i znikąd, aby rzucić wyzwanie bezpieczeństwu płatności w aplikacjach mobilnych, dążenie do bezpieczeństwa aplikacji mobilnych w dużych i małych firmach już zaczęło się rozwijać. Wszędzie, od sklepu internetowego po systemy finansowe wyższych instytucji, ludzie proszą o opracowanie aplikacji zabezpieczającej płatności online. Najczęściej wyszukiwanym pytaniem w dzisiejszych czasach jest: jak zbudować coś o wyższym poziomie ochrony? Postaramy się jak najlepiej to podkreślić.

Bezpieczeństwo to nowy czarny.

Pamiętasz niedawną cyberepidemię, która wybuchła w płomieniach na Ukrainie i ochoczo zaatakowała cały świat? Takie ataki udowadniają, że wszystkie zabezpieczenia transakcji internetowych, których szukamy, są jeszcze niedoskonałe – że pewnego dnia wszystkie maszyny mogą nagle ulec oszustwom. Istnieją różne rodzaje oszustw, ale to, do czego dąży większość hakerów, to bezpieczeństwo danych finansowych, przede wszystkim bezpieczeństwo kont bankowych i transakcji.

Niestety, nie ma panaceum na rozwój aplikacji bankowości mobilnej po śmierci cyberataków, ale z pewnością są rzeczy, które zwiększają bezpieczeństwo płatności i transakcji. Po pierwsze, istnieją 3 rodzaje płatności, które może obejmować Twój projekt z zabezpieczeniami dla aplikacji mobilnych:

  • Przychodzące

  • Towarzyski

  • Transakcje w systemie

Weźmy zapierającą dech w piersiach aplikację mobilną Ubera i przeanalizujmy na jej przykładzie wszystkie trzy kategorie. Płatności przychodzące to te, które są dokonywane przez klienta za określony produkt lub usługę, którą aplikacja pomaga mu wykonać; po zakończeniu przejazdu Uberem obciążona zostanie karta kredytowa. Płatności wychodzące to te, które system sam kieruje na rzecz pracowników, których reprezentuje. Kiedy zadowolony klient jest dostarczany przez kierowcę Ubera do miejsca docelowego, system zatrzymuje się przez określony czas, a następnie automatycznie przekazuje pieniądze kierowcy. Ten okres oczekiwania jest tak skonstruowany, aby użytkownik miał możliwość złożenia reklamacji na jakość usług, które otrzymał. Opcja ta wymaga pewnej staranności ze strony użytkownika - po upływie tego okresu klient nie może już wypełnić zgłoszenia reklamacyjnego. Zarówno wychodzące, jak i przychodzące transakcje finansowe wymagają integracji z systemem zewnętrznego dostawcy płatności.

Sprawy działają jednak inaczej z transakcjami w systemie - czego przykładem mogą być operacje finansowe między dwoma użytkownikami w systemie. W tym momencie transakcje mogą również funkcjonować bez zintegrowanego dostawcy płatności ze względu na wszystkie interakcje zachodzące we wspomnianym systemie. Opisane wcześniej metody pobierania opłat są szeroko stosowane we wszelkiego rodzaju aplikacjach finansowych, wraz z innymi funkcjami.

Jak zabezpieczyć swoją aplikację mobilną? Dobrze,

Bankowość mobilna

...Potrzebujesz ICH, aby byli obecni.

„Każdy twórca jest zawsze mile widziany do przyłączenia się do swoich pomysłów - w celu maksymalizacji użyteczności produktu!”

W zasadzie każdy portfel mobilny, którego podstawą jest zabezpieczenie aplikacji bankowości mobilnej, wymaga pewnej ilości funkcji, aby był atrakcyjny i „wykorzystywany przez użytkownika”. Oto krótka lista funkcji uważanych za najważniejsze:

  • Dostęp do konta bankowego w każdej chwili, niezależnie od tego, czy pada deszcz czy słońce

  • Możliwość dokonywania transakcji finansowych, w szczególności:

a) Przelej swoje środki na dowolne konto w tym systemie bankowym.

b) Przelej swoje środki na dowolne konto, kartę kredytową lub debetową na całym świecie.

c) Płać za dowolne usługi komunikacyjne - doładuj telefon komórkowy, zapłać swojemu dostawcy internetu itp.

d) Płacić za wszelkie inne usługi stron trzecich, które są objęte logiką biznesową systemu bankowego – bilety autobusowe/samolotowe/kolejowe, żywność, kosmetyki i gry, bilety do kina i piłki nożnej (lub innego popularnego sportu). Liczba różnych płatności, które można przeprowadzić za pośrednictwem Twojej aplikacji, może być różna, ponieważ wszystko zależy od logiki biznesowej i wymagań tworzonych na etapie analizy biznesowej.

e) Możliwość płacenia rachunków jest również wskazówką, może zmaksymalizować zaangażowanie użytkownika w aplikacji, o ile użytkownicy mogą mieć dostęp do pełnego zakresu mediów (gaz, prąd, woda, ogrzewanie itp.).

  • Możliwość zarządzania kartami (blokowanie/odblokowywanie, ustalanie limitu płatności online, zmiana kodów PIN lub CW2, dodawanie, zamawianie lub zamykanie istniejącej karty).

  • Funkcja robienia darowizn świetnie sprawdziłaby się w aplikacji bankowej – sugerując, że Ty i Twoi klienci jesteście zaangażowani w jakąkolwiek działalność charytatywną.

  • Możliwość dostępu do geolokalizacji użytkownika i pokazania mu pobliskich bankomatów i najbliższych oddziałów banków.

Zakres funkcji nie kończy się na wspomnianych powyżej – to te, o których nasi analitycy biznesowi mogliby pomyśleć, zastanawiając się, jak zabezpieczyć transakcje online, ale każdy twórca jest zawsze mile widziany, aby przyłączyć się do swoich pomysłów – w celu maksymalizacji użyteczność produktu!

Ilość i złożoność wspomnianych funkcji wymagałaby podwójnego zabezpieczenia bankowej aplikacji mobilnej. Jak jednak zabezpieczyć transakcje finansowe online?

1. System nie musi zapisywać danych finansowych użytkowników.

Po zakończeniu operacji przychodzących, wychodzących lub w systemie konieczne jest, aby wszystkie informacje handlowe użytkownika zostały pozostawione u dostawcy usług płatniczych podczas zabezpieczania transakcji online. Dostawca zwykle ma skarbiec i wbudowany system tokenizacji, który przeprowadza i chroni wszystkie operacje finansowe. Na Twojej stronie internetowej (lub w Twojej aplikacji) musi być wstawiony konkretny formularz, który nie jest częścią kodu całego projektu, jak pokazano poniżej na obrazku:

Schemat płatności w paski

Później otrzymany token i protokoły bezpieczeństwa danych formularza trafiają na nasz serwer i dopiero po tym aplikacja mogła naładować system. Ta metoda pracy jest szeroko stosowana przez dostawcę płatności Stripe.

Pomimo tego, że metoda ta jest naprawdę powszechnie znana, jest w niej pewna pułapka. Gdy Twoja aplikacja przesyła dane karty na serwer bezpośrednio do serwisu płatniczego, nie podaje dokładnej kwoty przelewu. Tak więc, hipotetycznie rzecz biorąc, istnieje szansa, że ​​system wypłaci więcej pieniędzy niż powinien - przez pomyłkę lub błąd systemu. Ten problem nie został jeszcze rozwiązany, więc chociaż Stripe jest poręcznym rozwiązaniem, w którym użytkownik nie jest nigdzie przekierowywany, nadal brakuje stabilnego bezpiecznego procesu.

Innym powszechnie znanym systemem jest PayPal, z przyciskiem „zapłać przez PayPal”.

Schemat PayPal

Sposób, w jaki działa PayPal, to „przetwarzanie płatności w aplikacji internetowej” – ponieważ gdy użytkownik trafia na ekran płatności, automatycznie przenosi prawa użytkownika na platformę PayPal. Gdy klient dalej płaci za pośrednictwem usługi, Twoja aplikacja bankowości mobilnej musi następnie utworzyć podmiot wysyłany do PayPal, który informuje, czy płatność została otrzymana, czy nie.
Kluczową kwestią, która odróżnia bramki płatności mobilnych Stripe i PayPal, jest to, że PayPal pozwala zobaczyć rzeczywistą kwotę przekazanych środków, ale przekierowuje Cię na ich platformę; z drugiej strony Stripe nie zmusza Cię do podążania za żadnymi linkami zewnętrznymi, ale problemy z bezpieczeństwem płatności mobilnych „dokładnej sumy” mogą rozpraszać Twoich przyszłych użytkowników.

2. System musi dbać o bezpieczeństwo i dźwięk tokenów.

Jeśli budujesz bezpieczną aplikację mobilną z opcją subskrypcji - to musi być bezpiecznie przechowywana w bazie danych serwisu. Struktura projektu powinna umożliwiać przechowywanie tych tokenów tylko tam - z wyłączeniem profilu publicznego lub opcji jakiegokolwiek innego podmiotu.

Innym sposobem zabezpieczenia transakcji finansowych jest szyfrowanie ochrony HTTPS w strukturze witryny. Jeśli nie ma ich na stronie - użytkownik nie powinien przekazywać pieniędzy do zasobu strony trzeciej, w celu zabezpieczenia transakcji finansowych online.

3. Staraj się unikać błędu „Wyjątek, wypłata, powtórzenie”.

Najbardziej przerażającą rzeczą, jaka może się przydarzyć Twojej wypłacie (przelewy środków, gdy system przekazuje środki użytkownikom) jest „niekończąca się pętla”. Wypłata dla użytkowników jest jednym z zadań wykonywanych w tle przez system, a jeśli zdarzy się wyjątek - zadanie jest uruchamiane ponownie. Dzięki temu każda transakcja mogła być przesyłana w kółko tylko do jednego użytkownika.

Jak temu zapobiec:

  • Ustaw menedżera zadań w tle w taki sposób, aby zadania finansowe nie wchodziły w niekończącą się pętlę;
  • Na każdym etapie, na którym element jest edytowany lub tworzony, pomocne byłoby odnotowanie go w pliku dziennika, aby żadna zmiana nie pozostała niezauważona. Nawet jeśli wystąpi pętla, przynajmniej będziesz w stanie zauważyć jej przyczynę i dokąd trafiły pieniądze, aby można je było zwrócić użytkownikom.

Podsumowując wszystkie sprawy, bezpieczna aplikacja bankowa wymaga przestrzegania następujących zasad:

  • Brak danych finansowych użytkowników do przechowywania

  • Brak przesyłania pieniędzy na platformy bez ochrony HTTPS.

  • Każda odpowiedź lub żądanie serwera, każda akcja, webhook lub callback powinny być rejestrowane jak najdokładniej

  • Proces płatności powinien być maksymalnie uproszczony, maksymalnie polegając na dostawcy usług płatniczych, unikając tworzenia własnego e-portfela tam, gdzie to możliwe

  • Zawsze poświęć trochę czasu na przetestowanie działania aplikacji, ponieważ tylko podczas procesu testowania można przewidzieć wszystkie negatywne przypadki

  • Zdecydowanie zaleca się korzystanie z web hooków i wywołań zwrotnych

  • Zawsze sprawdzaj raport dostarczany przez system płatności, ponieważ możesz zauważyć, że problem występuje właśnie tam

Mobilizacja wszystkiego.

Jednym z najczęstszych trendów w każdej firmie w dzisiejszych czasach jest mobilność z zabezpieczeniami aplikacji mobilnych i szyfrowaniem aplikacji mobilnych. Od wielkich korporacji finansowych po najmniejsze sklepy na rogu, te inteligentne gadżety zajęły cały świat. Co więcej, szybki przegląd spostrzeżeń Statista sugeruje, że trend ten będzie rósł dopiero w ciągu najbliższych 7 lat.

Bez względu na wybraną platformę — zabezpieczenia aplikacji na iOS lub Androida, ochrona bankowości internetowej jest złożonym, ale naprawdę satysfakcjonującym procesem. Wyobraź sobie, że masz potencjał do rozwijania poczucia bezpieczeństwa użytkowników i ich funduszy, pozwalających milionom ludzi spokojnie odpoczywać w nocy… czy nie jest to coś, co może zmienić życie?

Napisane przez Alexa Averyanova, Olega Tsarenko i Elinę Bessarabovą.