Kod jest tajny. Traktujemy go jak tajny.

Jednorazowy kod jest tak bezpieczny, jak sposób jego generowania, przechowywania i ograniczania liczby żądań. Bird Verify generuje kody z kryptograficznego źródła, przechowuje tylko hash, porównuje w stałym czasie i ogranicza zarówno wysyłki, jak i próby odgadnięcia — wyciek logów ani atak brute-force nic atakującemu nie dają. Scoring oszustw to kolejny krok, budowany na tej bazie.

verify.ts
200 · pending
import { 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;
Proces weryfikacji

Twoje konto

Potwierdź, że to Ty.

Wpisz kod wysłany na

+1 ••• ••• 4567

Przykładowy kod weryfikacyjny

482691
Kod zweryfikowany
Wyślij kod. Potwierdź odbiorcę.

Bezpieczeństwo domyślnie włączone, nie jako dodatek.

Każda weryfikacja w Bird Verify API ma te same zabezpieczenia: kod jest generowany po stronie serwera, nigdy nie jest zwracany i przechowywany jest wyłącznie jako hash; sprawdzenia działają w stałym czasie i w ramach ograniczonego budżetu prób; wysyłki są limitowane per odbiorca i per obszar roboczy. Nie musisz tego włączać ani konfigurować — tak po prostu działa API, niezależnie od tego, czy używasz jej do logowania dwuskładnikowego, czy logowania bez hasła.

Pięć zabezpieczeń w każdej weryfikacji.

Bez dodatkowej konfiguracji, bez płatnego dodatku.

  1. 01

    Generowanie kryptograficzne.

    Kody pochodzą z kryptograficznego źródła losowego, równomiernie rozłożone w przestrzeni kodów — nie z przewidywalnego licznika ani znacznika czasu.

  2. 02

    Hashowane w spoczynku, nigdy wysyłane w postaci jawnej.

    Przechowywany jest tylko HMAC-SHA256 każdego kodu; tekst jawny nigdy nie jest zwracany przez API ani zapisywany w Twoim stosie czy naszych logach.

  3. 03

    Porównanie w stałym czasie.

    Przesłane kody są porównywane w stałym czasie, więc atakujący nie wyciągnie wniosków z czasu trwania sprawdzenia.

  4. 04

    Blokada po wyczerpaniu prób.

    Każda sesja ma ograniczoną liczbę sprawdzeń (domyślnie 5). Po ich wyczerpaniu sesja kończy się niepowodzeniem — zgadywanie nie może trwać w nieskończoność.

  5. 05

    Limity wysyłek.

    Limit wysyłek per odbiorca i okres oczekiwania przed ponownym wysłaniem ograniczają koszty i powierzchnię ataku — każde przekroczenie zwraca 429 z Retry-After.

Próby atakującego kończą się, zanim skończą się Twoi użytkownicy.

Błędny kod zwraca liczbę pozostałych prób, a sesja kończy się niepowodzeniem po wyczerpaniu budżetu — atak brute-force trafia na ścianę na długo przed znalezieniem kodu.

lockout.ts
200
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

Wkrótce: sygnały oszustw i ochrona przed SMS-pumpingiem.

Historia wysyłek, którą Verify już rejestruje, jest fundamentem warstwy antyfraudowej, którą teraz budujemy. Działa na tych samych wywołaniach create i check, więc jej późniejsze wdrożenie to zmiana konfiguracji, nie ponowna integracja.

Sygnały ryzyka przy tworzeniu. Przekaż kontekst urządzenia, IP i żądania przy weryfikacji — próby wysokiego ryzyka otrzymują wynik „zablokowany

Ochrona przed SMS-pumpingiem i AIT. Limity wysyłek per kraj i per prefiks oraz pułap wydatków per obszar roboczy blokują atak sztucznie zawyżonego ruchu, który kieruje OTP na numery premium w celu podziału przychodów z operatorem.

Zbudowane na tym, co już działa. Ocena ryzyka korzysta z historii prób, którą Verify gromadzi od pierwszego dnia, a wynik „zablokowany

Skaluj bez
utraty kontroli.

Organizuj zespoły w obszarach roboczych, kontroluj dostęp do API i śledź zmiany w logach audytu.

BirdHarborOrganizacja
Przestrzenie roboczeProdukcjaSandbox

Agent wysyłki

Klucz API · Zespół operacji klienta
Aktywne
UprawnieniaDostęp
EmailOdczyt i zapis
SMSOdczyt i zapis
ALAlex Lee AdministratorZaktualizowano uprawnienia

Dziennik audytu

Produkcja
Przestrzeń robocza
Produkcja
Zasób
Agent wysyłki
WhatsApp
Dostęp do odczytuOdczyt i zapis
Powodzenie

Zacznij z Verify.
Twórz na wielu kanałach z Bird.

Twój kolejny pomysł. Gotowy do połączenia.