Hentikan tebakan brute-force dan penyalahgunaan OTP otomatis.
Lindungi alur verifikasi pendaftaran, login, dan step-up dari tebakan kode brute-force, loop kirim ulang otomatis, dan SMS pumping tanpa menambah hambatan bagi pengguna sah. Bird Verify melakukan hash pada kode verifikasi saat disimpan, menerapkan batas percobaan dan jangka kedaluwarsa per sesi, membatasi pengiriman berulang per penerima, dan memungkinkan Anda memblokir negara yang tidak Anda layani sebelum pesan terkirim.
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;
Akun Anda
Pastikan ini Anda.
Masukkan kode yang dikirim ke
+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;
Akun Anda
Pastikan ini Anda.
Masukkan kode yang dikirim ke
+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;
Akun Anda
Pastikan ini Anda.
Masukkan kode yang dikirim ke
+1 ••• ••• 4567
Amankan alur OTP tanpa membangun pembatas laju sendiri.
Mengamankan verifikasi secara internal berarti memelihara penghitung Redis untuk jeda kirim ulang, melacak tebakan gagal per sesi, melakukan hash kode sebelum ditulis ke database, dan menyaring lalu lintas ke negara tempat Anda tidak beroperasi. Dengan API Bird Verify, semua pengaman itu berjalan otomatis di setiap sesi verifikasi. Kode verifikasi plaintext tidak muncul di respons API maupun log aplikasi, endpoint pemeriksaan menerapkan jatah percobaan terbatas dan pembatasan laju permintaan per menit, dan pengaturan workspace memungkinkan Anda menyesuaikan jangka kedaluwarsa serta tujuan yang diizinkan di login dua faktor dan masuk tanpa kata sandi.
Cara Bird melindungi sesi verifikasi dari penyalahgunaan.
Pengaman bawaan dan kontrol workspace yang menghentikan tebakan kode, banjir kirim ulang, dan lalu lintas internasional yang tidak diinginkan.
- 01
Buat kode verifikasi yang tidak dapat ditebak.
Buat kode verifikasi numerik 6 digit secara default (atau 4 hingga 8 digit per permintaan) dari sumber acak kriptografis di seluruh ruang kode, sehingga penyerang tidak dapat menebak kode dari stempel waktu atau penghitung berurutan.
- 02
Jauhkan kode plaintext dari log dan respons.
Simpan kode verifikasi sebagai hash HMAC-SHA256 dan hilangkan plaintext dari respons API, payload webhook, dan log dasbor, sehingga log aplikasi yang bocor atau tampilan dukungan tidak dapat mengekspos kode aktif.
- 03
Periksa kode yang dikirim dalam waktu konstan.
Evaluasi digit yang dikirim pengguna dalam waktu konstan di semua percobaan aktif dalam sesi, sehingga latensi respons tidak memberi penyerang petunjuk apa pun tentang jumlah digit yang cocok.
- 04
Kunci tebakan brute-force dan akhiri sesi yang usang.
Batasi setiap sesi hingga 5 percobaan pemeriksaan dan jangka kedaluwarsa 10 menit secara default, atau sesuaikan kedua batas di pengaturan workspace Anda. Begitu jatah percobaan atau waktu habis, sesi ditutup dan pemeriksaan berikutnya ditolak, didukung pembatasan pemeriksaan per menit.
- 05
Batasi pengiriman berulang dan blokir negara yang tidak digunakan.
Terapkan jeda kirim ulang 60 detik (dapat diatur hingga satu jam) dan batas bergulir 5 pengiriman per alamat penerima per jam, sehingga bot tidak dapat membanjiri ponsel pengguna atau menguras saldo Anda. Nonaktifkan negara yang tidak Anda layani di dasbor untuk memblokir SMS pumping ke tujuan tersebut sebelum pesan terkirim.
Bantu pengguna asli saat salah ketik sambil mengunci loop brute-force.
Saat pengguna salah mengetik digit, respons pemeriksaan memberi tahu aplikasi Anda sisa percobaan sehingga Anda dapat memintanya mencoba lagi. Begitu jatah percobaan sesi habis, verifikasi ditutup otomatis dan memblokir tebakan berikutnya hingga sesi baru dimulai.
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 }Segera hadir: sinyal risiko otomatis dan batas pengeluaran.
Selain kontrol negara dan batas pengiriman per penerima yang sudah tersedia, kami sedang membangun lapisan antipenipuan langsung di siklus verifikasi. Karena berjalan di endpoint kirim dan periksa yang sama, tim Anda akan dapat mengaktifkan aturan risiko lewat konfigurasi tanpa mengubah kode aplikasi.
Sinyal risiko pada permintaan verifikasi. Kirim konteks perangkat, IP, dan permintaan saat memulai verifikasi agar percobaan berisiko tinggi dapat diblokir sebelum pesan terkirim dan menimbulkan biaya operator.
Batas kecepatan per prefiks dan batas pengeluaran. Gabungkan batas pengiriman per negara dan per prefiks dengan batas verifikasi workspace untuk menghentikan serangan artificially inflated traffic (AIT) yang menyasar rentang nomor premium operator sebelum menguras anggaran Anda.
Keputusan berbasis riwayat pengiriman. Nilai permintaan verifikasi baru berdasarkan riwayat percobaan dan konversi yang dicatat Bird Verify di semua kanal, lalu tampilkan hasil yang diblokir langsung melalui handler status Anda yang sudah ada.
Bangun di platform Verify
Pengiriman multikanal, perutean cadangan, dan alur autentikasi yang dibangun di API yang sama.
Skalakan tanpa kehilangan kendali.
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.