Anti-penyalahgunaan & keamanan kode

Dalam pratinjau

Kode adalah rahasia. Kami memperlakukannya seperti itu.

Siapkan dalam:
Cursor

Kode sekali pakai hanya sebaik cara ia dibuat, disimpan, dan dibatasi lajunya. Bird Verify membuat kode dari sumber kriptografis, menyimpan hanya hash-nya, membandingkan dalam constant time, dan membatasi pengiriman maupun tebakan — sehingga log yang bocor atau serangan brute-force tidak membawa penyerang ke mana-mana. Penilaian penipuan akan dibangun di atas dasar ini berikutnya.

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 } = await bird.verify.verifications.check({
  to:   { phone_number: "+15551234567" },
  code: userInput,
}).safe();

Keamanan yang aktif secara bawaan, bukan tambahan.

Setiap verifikasi pada Bird Verify API memiliki perlindungan yang sama: kode dibuat di sisi server, tidak pernah dikembalikan, dan disimpan hanya sebagai hash; pemeriksaan berjalan dalam constant time dan terhadap batas percobaan yang ditentukan; serta pengiriman dibatasi per penerima dan per workspace. Anda tidak perlu mengaktifkan atau mengonfigurasi 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.

  1. 01

    Pembuatan kriptografis.

    Kode diambil dari sumber acak kriptografis, seragam di seluruh ruang kode, bukan penghitung atau timestamp yang dapat diprediksi.

  2. 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.

  3. 03

    Perbandingan constant-time.

    Kode yang dikirimkan dibandingkan dalam constant time, sehingga penyerang tidak mendapat informasi apa pun dari berapa lama pemeriksaan berlangsung.

  4. 04

    Penguncian percobaan.

    Setiap sesi memiliki jumlah pemeriksaan yang terbatas (5 secara bawaan). Setelah habis, sesi gagal, sehingga tebakan tidak bisa berjalan selamanya.

  5. 05

    Batas pengiriman dan kuota.

    Batas pengiriman per penerima, jeda pengiriman ulang, dan kuota harian per workspace 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.

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

Segera hadir: sinyal penipuan dan perlindungan SMS-pumping.

Riwayat per pengiriman yang dicatat Verify saat ini adalah fondasi untuk lapisan penipuan yang sedang kami bangun. Lapisan ini menggunakan panggilan create dan check yang sama — jadi mengadopsinya nanti hanya perubahan konfigurasi, bukan integrasi ulang.

Sinyal risiko saat create. Kirimkan konteks perangkat, IP, dan permintaan pada verifikasi, dan percobaan berisiko tinggi 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 penipuan hadir tanpa mengubah integrasi Anda.

FAQ keamanan verifikasi

Di mana kode sekali pakai disimpan?+
Hanya sebagai hash HMAC-SHA256. Bird membuat kode dengan sumber acak kriptografis, mengirimkannya, dan menyimpan hash untuk dibandingkan — plaintext tidak pernah dikembalikan oleh API atau ditulis ke log.
Bagaimana Anda mencegah seseorang melakukan brute-force pada kode?+
Setiap sesi memiliki jumlah pemeriksaan yang terbatas (5 secara bawaan), dan setiap pemeriksaan dibandingkan dalam constant time sehingga timing tidak membocorkan apa pun. Setelah batas habis, sesi gagal, sehingga penyerang tidak bisa terus menebak.
Bagaimana dengan SMS pumping dan artificially inflated traffic?+
Batas pengiriman per penerima dan kuota harian per workspace membatasi pengeluaran saat ini. Penilaian penipuan khusus dan perlindungan SMS-pumping akan segera hadir, dibangun di atas riwayat per pengiriman yang sudah dicatat Verify.
Apakah perlindungan ini dikenakan biaya tambahan?+
Tidak. Pembuatan kriptografis, penyimpanan hash, pemeriksaan constant-time, penguncian percobaan, dan batas pengiriman adalah cara setiap verifikasi bekerja — tidak ada tier keamanan yang perlu dibeli.
Pengguna saya melihat kode dari siapa?+
Authifly, merek verifikasi Bird. Ini adalah identitas pada setiap kode yang diterima pengguna Anda: email dikirim dari otp@verify.authifly.com atau domain terverifikasi Anda sendiri, dan SMS serta WhatsApp bermerek Authifly. authifly.com adalah halaman publik yang meyakinkan penerima bahwa Authifly mengirimkan kode sekali pakai yang sah atas nama bisnis. Bird adalah platform tempat Anda membangun; Authifly adalah yang dilihat oleh penerima.

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.

Mulai dengan satu channel.
Tambahkan yang lain saat Anda siap.

API key uji coba langsung tersedia untuk Anda. Akses produksi terbuka setelah Anda menambahkan metode pembayaran dan memverifikasi pengirim.

Menggunakan Claude Code, Cursor, atau Codex? Salin prompt pengaturan dan agen Anda akan menginstal Bird CLI dan skill untuk Anda. Pilih milik Anda:

Cursor