Dzień, w którym naprawiliśmy nasz proces rejestracji
Nasza liczba rejestracji rosła z każdym tygodniem. Zespół był podekscytowany. Ale dane wydawały się błędne. Użytkownicy nigdy nie wracali. Adresy e-mail wyglądały dziwnie. Nasz współczynnik aktywacji spadł.
Przyjrzałem się danym. Nie znalazłem wzrostu. Znalazłem szum.
Problem
Uruchomiłem zapytanie, aby pogrupować rejestracje według adresów IP. Jeden adres IP zarejestrował setki kont w ciągu 24 godzin. Używał tego samego fingerprintu przeglądarki. Skrypt uderzał w nasz endpoint rejestracji. Używał tymczasowych domen e-mail. To był bot, a nie człowiek.
Nasz proces rejestracji był całkowicie otwarty.
Rozwiązanie
W jednym sprincie zbudowaliśmy trzy warstwy ochrony.
Warstwa 1: Throttling
Zastosowaliśmy dwa rodzaje rate limitingu.
- Throttling na poziomie IP: Ograniczamy próby rejestracji z jednego adresu IP w krótkim oknie czasowym.
- Throttling na poziomie domeny: Ograniczamy rejestracje z tej samej domeny e-mail w dłuższym oknie czasowym. To zatrzymuje boty używające różnych adresów IP z tą samą domeną.
Warstwa 2: Listy blokujące
- Blokowane domeny e-mail: Odrzucamy każdą rejestrację przy użyciu tymczasowych domen e-mail.
- Blokowane user agenty: Odrzucamy żądania z narzędzi innych niż przeglądarki. Nie przekazujemy żadnych szczegółów atakującemu.
Warstwa 3: Lista blokowanych adresów IP
Niektóre adresy IP są uporczywe. Nadużywają wielu części naszego systemu. Stosujemy sztywną listę blokującą. Te adresy IP są odrzucane przy każdym żądaniu. Middleware zatrzymuje je natychmiast.
Wyniki
Przed poprawką:
- Jeden adres IP tworzył setki kont w ciągu jednego dnia.
- Tymczasowe domeny stanowiły większość rejestracji.
- Fałszywe konta obniżały nasz współczynnik aktywacji.
- Nasze dane były błędne.
Po poprawce:
- Masowe tworzenie kont (registration farming) spadło do zera.
- Rejestracje z tymczasowych domen ustały.
- Liczba rejestracji odzwierciedlała rzeczywiste intencje ludzi.
- Nasz współczynnik aktywacji wrócił do normy.
Wyciągnięte wnioski
- Sygnał jest ważniejszy niż wolumen. Boty sprawiają, że metryki takie jak retencja i przychody stają się niewiarygodne.
- Małe poprawki w kodzie rozwiązują duże problemy. Użyliśmy trzech prostych mechanizmów.
- Warstwy są niezbędne. Jedno ograniczenie to za mało. Kombinacja zapewnia szerszą ochronę.
- Kontroluj swoje odpowiedzi. Użytkownikom o dobrych zamiarach dawaj informację zwrotną. Atakującym dawaj ciszę.
Wzrost to nie tylko pozyskiwanie użytkowników. To pozyskiwanie prawdziwych użytkowników. Decyzje dotyczące produktu zależą od dobrych danych. Te dane zaczynają się na Twoim endpoincie rejestracji.
Źródło: https://dev.to/ogeobubu/the-day-we-fixed-our-signup-pipeline-3664