Anti-penyalahgunaan & keamanan kode
Dalam pratinjauKode 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 } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: userInput,
}).safe();
Keamanan 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 dikembalikan sebagai hasil dengan sisa percobaan, dan sesi gagal setelah batas habis, sehingga serangan brute-force menabrak tembok, bukan pintu terbuka.
const { data } = await bird.verify.verifications.check({
to: { phone_number: "+15551234567" },
code: guess,
}).safe();
// wrong code, attempts left → { result: "invalid", attempts_remaining: 2 }
// budget spent, session done → { result: "failed", 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.
FAQ keamanan verifikasi
Di mana kode sekali pakai disimpan?
Bagaimana Anda mencegah seseorang melakukan brute-force pada kode?
Bagaimana dengan SMS pumping dan artificially inflated traffic?
Apakah perlindungan ini dikenakan biaya tambahan?
Pengguna saya melihat kode dari siapa?
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.