Anti-penyalahgunaan & keamanan kode

Dalam pratinjau

Kode adalah rahasia. Kami memperlakukannya seperti itu.

Siapkan dalam:
Cursor

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.

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

  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.

    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.

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 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?
Hanya sebagai hash HMAC-SHA256. Bird menghasilkan kode dengan sumber acak kriptografis, mengirimkannya, dan menyimpan hash-nya untuk perbandingan: teks asli 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 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 waktu konstan, penguncian percobaan, dan pembatasan pengiriman adalah cara kerja setiap verifikasi: 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