Powstrzymaj zgadywanie metodą brute force i zautomatyzowane nadużycia OTP.
Chroń procesy weryfikacji przy rejestracji, logowaniu i dodatkowym uwierzytelnianiu przed zgadywaniem kodów metodą brute force, zautomatyzowanymi pętlami ponownych wysyłek i SMS pumpingiem, nie utrudniając życia prawdziwym użytkownikom. Bird Verify przechowuje kody weryfikacyjne w postaci haszy, egzekwuje limity prób i okna ważności dla każdej sesji, ogranicza powtórne wysyłki do jednego odbiorcy i pozwala zablokować kraje, których nie obsługujesz, zanim wiadomość zostanie wysłana.
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
Twoje konto
Potwierdź, że to Ty.
Wpisz kod wysłany na
+1 ••• ••• 4567
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
Twoje konto
Potwierdź, że to Ty.
Wpisz kod wysłany na
+1 ••• ••• 4567
verify.ts
200 · pendingimport { BirdClient } from "@messagebird/sdk"; const bird = new BirdClient({ apiKey: process.env.BIRD_API_KEY!, }); // Send the code, then check it by recipient. await bird.verify.verifications.create({ to: { phone_number: "+15551234567" }, }).safe(); const { data, error } = await bird.verify.verifications.check({ to: { phone_number: "+15551234567" }, code: userInput, }).safe(); if (error) throw error;
Twoje konto
Potwierdź, że to Ty.
Wpisz kod wysłany na
+1 ••• ••• 4567
Zabezpiecz procesy OTP bez budowania własnych mechanizmów ograniczania liczby żądań.
Samodzielne zabezpieczanie weryfikacji oznacza utrzymywanie liczników w Redis dla odstępów między ponownymi wysyłkami, śledzenie nieudanych prób w każdej sesji, haszowanie kodów przed zapisem do bazy danych i odfiltrowywanie ruchu do krajów, w których nie działasz. Dzięki Bird Verify API te zabezpieczenia działają automatycznie w każdej sesji weryfikacji. Kody weryfikacyjne w postaci jawnej nie trafiają do odpowiedzi API ani logów aplikacji, endpointy sprawdzające egzekwują ograniczoną pulę prób i limity na minutę, a ustawienia obszaru roboczego pozwalają dostosować okna ważności i dozwolone miejsca docelowe w logowaniu dwuskładnikowym i logowaniu bez hasła.
Jak Bird chroni sesje weryfikacji przed nadużyciami.
Domyślne zabezpieczenia i ustawienia obszaru roboczego, które powstrzymują zgadywanie kodów, zalew ponownych wysyłek i niechciany ruch międzynarodowy.
- 01
Generuj nieprzewidywalne kody weryfikacyjne.
Domyślnie generuj 6-cyfrowe kody weryfikacyjne (lub od 4 do 8 cyfr na żądanie) z kryptograficznego źródła losowości w całej przestrzeni kodów, aby atakujący nie mogli przewidzieć kodów na podstawie znaczników czasu ani kolejnych wartości licznika.
- 02
Nie dopuszczaj jawnych kodów do logów i odpowiedzi.
Przechowuj kody weryfikacyjne jako hasze HMAC-SHA256 i pomijaj ich jawną postać w odpowiedziach API, payloadach webhooków i logach w dashboardzie, aby wycieki logów aplikacji czy widoki zespołu wsparcia nie ujawniły aktywnych kodów.
- 03
Sprawdzaj przesłane kody w stałym czasie.
Weryfikuj cyfry przesłane przez użytkownika w stałym czasie dla wszystkich aktywnych prób w sesji, aby czas odpowiedzi nie zdradzał atakującym, ile cyfr się zgadza.
- 04
Blokuj zgadywanie metodą brute force i wygaszaj nieaktualne sesje.
Domyślnie każda sesja ma limit 5 prób sprawdzenia i 10-minutowe okno ważności. Oba limity możesz dostosować w ustawieniach obszaru roboczego. Gdy pula prób się wyczerpie lub czas minie, sesja zostaje zamknięta, a kolejne sprawdzenia są odrzucane, dodatkowo chronione ograniczeniem liczby sprawdzeń na minutę.
- 05
Ograniczaj powtórne wysyłki i blokuj nieużywane kraje.
Egzekwuj 60-sekundowy odstęp między ponownymi wysyłkami (konfigurowalny do godziny) i kroczący limit 5 wysyłek na adres odbiorcy na godzinę, aby boty nie mogły zasypać telefonu użytkownika ani wyczerpać Twojego salda. Wyłącz w dashboardzie kraje, których nie obsługujesz, aby zablokować SMS pumping do nieobsługiwanych miejsc docelowych, zanim wiadomość zostanie wysłana.
Pomagaj prawdziwym użytkownikom przy literówkach, blokując pętle brute force.
Gdy użytkownik pomyli cyfrę, odpowiedź sprawdzenia informuje Twoją aplikację, ile prób pozostało, aby mogła poprosić o ponowną próbę. Gdy pula prób w sesji się wyczerpie, weryfikacja zamyka się automatycznie i blokuje kolejne próby do czasu rozpoczęcia nowej sesji.
const { data, error } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: guess,
}).safe();
if (error) throw error;
// wrong code, attempts left → { success: false, reason: "incorrect_code", attempts_remaining: 2 }
// budget spent, session done → { success: false, reason: "attempts_exhausted", attempts_remaining: null }Wkrótce: automatyczne sygnały ryzyka i limity wydatków.
Oprócz dostępnej już kontroli krajów i limitów wysyłek na odbiorcę budujemy warstwę ochrony przed oszustwami bezpośrednio w cyklu życia weryfikacji. Ponieważ działa ona na tych samych endpointach wysyłki i sprawdzania, Twój zespół włączy reguły ryzyka w konfiguracji bez zmian w kodzie aplikacji.
Sygnały ryzyka w żądaniach weryfikacji. Przekazuj kontekst urządzenia, adresu IP i żądania przy rozpoczynaniu weryfikacji, aby blokować ryzykowne próby, zanim wiadomość zostanie wysłana i naliczy opłaty operatora.
Limity tempa dla prefiksów i limity wydatków. Łącz limity wysyłek dla krajów i prefiksów z limitami weryfikacji w obszarze roboczym, aby powstrzymać ataki sztucznie zawyżonego ruchu (AIT) na numery premium, zanim wyczerpią Twój budżet.
Decyzje oparte na historii dostarczeń. Oceniaj nowe żądania weryfikacji na podstawie historii prób i konwersji, którą Bird Verify zapisuje we wszystkich kanałach, i zwracaj zablokowane wyniki bezpośrednio do istniejącej obsługi statusów.
Buduj na platformie Verify
Dostarczanie wielokanałowe, routing zapasowy i procesy uwierzytelniania oparte na tym samym API.
Skaluj bez utraty kontroli.
Separate production and sandbox traffic into dedicated workspaces, scope API keys to the exact channels each service or agent needs, and track permission changes in the audit log.