Anti-penyalahgunaan & keamanan kode
Kode adalah rahasia. Kami memperlakukannya seperti itu.
Kode sekali pakai hanya sebaik cara kode itu dibuat, disimpan, dan dibatasi penggunaannya. Bird Verify menghasilkan kode dari sumber kriptografis, hanya menyimpan hash-nya, membandingkan dalam waktu konstan, dan membatasi pengiriman maupun percobaan tebakan — sehingga log yang bocor atau serangan brute-force tidak membawa penyerang ke mana-mana. Penilaian risiko penipuan dibangun di atas fondasi ini selanjutnya.
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;
Akun Anda
Konfirmasi identitas Anda.
Masukkan kode yang dikirim ke
+1 ••• ••• 4567Contoh kode verifikasi
Dipercaya setiap hari oleh tim yang membangun perangkat lunak kelas dunia
Baca lebih banyak kisah pelangganKeamanan yang aktif secara bawaan, bukan tambahan.
Setiap verifikasi di Bird Verify API memiliki perlindungan yang sama: kode dibuat di sisi server, tidak pernah dikembalikan, dan hanya disimpan sebagai hash; pemeriksaan berjalan dalam waktu konstan dan terhadap batas percobaan yang ditentukan; serta pengiriman dibatasi per penerima dan per workspace. Anda tidak perlu mengaktifkan atau mengonfigurasi semua ini: begitulah cara API bekerja, baik Anda menggunakannya sebagai login dua faktor maupun masuk tanpa kata sandi.
Lima perlindungan di setiap verifikasi.
Tanpa langkah pengaturan, tanpa SKU tambahan.
- 01
Pembuatan kriptografis.
Kode diambil dari sumber acak kriptografis, seragam di seluruh ruang kode, bukan penghitung atau timestamp yang dapat diprediksi.
- 02
Di-hash saat disimpan, tidak pernah dikirim keluar.
Hanya HMAC-SHA256 dari setiap kode yang disimpan; plaintext tidak pernah dikembalikan oleh API dan tidak pernah ditulis ke stack Anda maupun log kami.
- 03
Perbandingan constant-time.
Kode yang dikirimkan dibandingkan dalam constant time, sehingga penyerang tidak mendapat informasi apa pun dari berapa lama pemeriksaan berlangsung.
- 04
Penguncian percobaan.
Setiap sesi memiliki jumlah pemeriksaan yang terbatas (5 secara bawaan). Setelah habis, sesi gagal, sehingga tebakan tidak bisa berjalan selamanya.
- 05
Batas pengiriman.
Batas pengiriman per penerima dan jeda pengiriman ulang membatasi pengeluaran dan permukaan penyalahgunaan, masing-masing berupa 429 dengan Retry-After.
Tebakan habis sebelum pengguna Anda habis.
Kode yang salah akan mengembalikan sisa percobaan yang tersedia, dan sesi gagal begitu batas percobaan habis, sehingga serangan brute-force akan terhalang jauh sebelum menemukan kode yang benar.
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 penipuan dan perlindungan SMS-pumping.
Riwayat per-pengiriman yang dicatat Verify saat ini adalah fondasi untuk lapisan anti-penipuan yang sedang kami bangun. Lapisan ini menggunakan panggilan create dan check yang sama, sehingga mengadopsinya nanti hanya perlu perubahan konfigurasi, bukan integrasi ulang.
Sinyal risiko saat create. Kirimkan konteks perangkat, IP, dan permintaan pada verifikasi, dan percobaan berisiko tinggi akan mendapat hasil blocked sebelum kode dikirim — sehingga Anda tidak membayar untuk mengirim pesan ke penyerang.
Perlindungan SMS-pumping dan AIT. Batas pengiriman per negara dan per prefiks ditambah batas pengeluaran per workspace menutup serangan artificially-inflated-traffic yang mengarahkan OTP ke rentang nomor premium untuk bagi hasil operator.
Dibangun di atas yang sudah ada. Keputusan risiko membaca riwayat percobaan yang disimpan Verify sejak hari pertama, dan hasil blocked sudah menjadi bagian dari model status — sehingga lapisan anti-penipuan hadir tanpa perlu mengubah integrasi Anda.
Terapkan dalam praktik.
Lanjutkan dengan dokumentasi, panduan, dan contoh untuk topik ini. Sumber daya tersedia dalam bahasa Inggris.
Platform Verify lainnya
Satu API, satu set kunci. Jelajahi kemampuan lainnya.
Kode yang dibuat, disimpan, dan dibatasi lajunya sebagaimana seharusnya.
Keamanan sudah tertanam dalam Bird Verify, bukan dijual terpisah: kanal, kode, dan batasannya ada dalam dua endpoint yang sama.