Zabezpieczenie współdzielonych kont

Kamil Mlonek 29 lipca 2021

Wdrożenie systemu zabezpieczania współdzielonych kont xbox dzięki ich automatycznemu podłączaniu do konsoli.

Zgłosił się do nas klient prowadzący sklep internetowy posiadający w swojej ofercie współdzielone konta do gier na platformę xbox z prośbą realizacji systemu zabezpieczającego konta poprzez podłączenie go z magazynu do konsoli klienta po podaniu automatycznie wygenerowanego kodu.

Zleceniodawca przedstawił nam konkretną specyfikację, która zakładała m.in. implemetację panelu administratora, utworzenie widoku strony z instrukcją i polem do wpisania kodu, automatyczne wygenerowanie kodu i przesłanie do nabywcy poprzez integrację z systemem automater oraz finalnie – podłączenie istniejącego konta z magazynu do konsoli. Z racji złożoności projektu, pojawiły się dwa główne problemy – w jaki sposób automatycznie przetworzyć zamówienie z systemu automater oraz jak podłączyć konto xbox do konsoli po przepisaniu kodu.

Do rozwiązania pierwszego z problemu, posłużyliśmy się rozwiązaniem webhook w systemie automater, które w momencie realizacji zamówienia, przesyła do aplikacji klienta notyfikację o nim, co pozwala na utworzenie nowej encji i wygenerowanie unikalnego kodu. Na etapie wdrożenia okazało się, że webhook nie przesyła istotnego parametru, jakim jest identyfikator oferty, przez co niezbędny był kontakt z działem technicznym. Dzięki ich uprzejmości, identyfikator został dodany, a nam zaoszczędziło to wiele czasu nad opracowaniem innego rozwiązania. Kolejnym etapem była logika podłączania konta do konsoli po wpisaniu kodu, Microsoft udostępnia możliwość zewnętrznego dostępu do niej poprzez specjalny formularz na stronie, z tymże cały proces musiał odbywać się w taki sposób, aby kupujący nie mógł poznać udostępnionych danych (głównie hasło). Z pomocą przyszła technologia Javascript pozwalająca na imitowanie działania użytkownika i wykonanie całej logiki w tle. Wykorzystanie ów technologii wymogło na nas dodatkowo wybranie specjalnego serwera pozwalającego na bardziej zaawansowaną konfigurację ze względu na ograniczenia popularnych hostingów.

Panel administratora został utworzony w języku PHP i autorskiego frameworka implementującego wzorzec MVC. Webhook jest przechwytywany przez specjalny endpoint i zabezpieczany za pomocą sekretu, natomiast widoki generowane przy pomocy poczciwego Bootstrapa. Logika podłączania konta została zrealizowana przy pomocy biblioteki javascript (Puppeter), której to skrypt zwraca wynik do front-endu informując użytkownika o postępie. Dodatkowo do naszych zadań należała konfiguracja serwera VPS, aby mógł współpracować z Puppeteer’em bazującym na Node.js.

Mockup psd created by freepik – www.freepik.com