Mengamankan Webhook dengan Cloudflare Workers: Panduan Integrasi Didit
Pelajari cara membangun endpoint webhook yang tangguh dan aman untuk verifikasi identitas Didit menggunakan Cloudflare Workers. Panduan ini mencakup verifikasi tanda tangan HMAC, validasi stempel waktu, dan praktik terbaik untuk.
Keamanan yang Ditingkatkan dengan Cloudflare WorkersCloudflare Workers menyediakan lingkungan tanpa server yang ideal untuk memproses webhook dengan aman, menawarkan perlindungan tingkat tepi dan verifikasi tanda tangan yang efisien.
Verifikasi Tanda Tangan HMAC Sangat PentingSelalu verifikasi tanda tangan HMAC-SHA256 dari webhook yang masuk untuk memastikan keaslian dan integritasnya, mencegah injeksi atau perusakan data yang tidak sah.
Validasi Stempel Waktu Mengurangi Serangan ReplayTerapkan pemeriksaan stempel waktu untuk memastikan permintaan webhook masih baru, menjaga dari serangan replay di mana permintaan lama yang sah dikirim ulang oleh pelaku jahat.
Didit Menyederhanakan Verifikasi Identitas yang AmanPlatform asli AI Didit menyediakan notifikasi webhook real-time yang kuat untuk semua produk verifikasi identitas, memastikan pengiriman data yang aman dan andal untuk aplikasi Anda.
Dalam lanskap digital yang saling terhubung saat ini, webhook adalah landasan komunikasi real-time antar layanan. Ini memungkinkan notifikasi instan untuk peristiwa seperti hasil verifikasi identitas, konfirmasi pembayaran, dan aktivitas pengguna. Namun, kenyamanan webhook datang dengan tantangan keamanan yang kritis: memastikan keaslian dan integritas data yang diterima. Tanpa perlindungan yang tepat, aplikasi Anda dapat rentan terhadap spoofing, perusakan, atau serangan replay.
Panduan ini akan memandu Anda dalam membangun endpoint webhook yang aman untuk verifikasi identitas Didit menggunakan Cloudflare Workers. Cloudflare Workers menawarkan platform tanpa server yang kuat di tepi, ideal untuk memproses dan mengamankan webhook dengan latensi minimal dan keandalan maksimum. Didit, sebagai platform identitas asli AI, mengandalkan webhook yang aman untuk mengirimkan notifikasi KYC real-time, menjadikan integrasi ini penting untuk setiap bisnis yang memanfaatkan solusi verifikasi identitas Didit yang kuat.
Mengapa Mengamankan Webhook Anda?
Bayangkan menerima notifikasi webhook yang secara salah mengklaim bahwa pengguna telah lulus Verifikasi ID, padahal sebenarnya mereka gagal. Atau mungkin pelaku jahat memutar ulang webhook lama yang sah untuk memicu tindakan di sistem Anda berkali-kali. Skenario ini menyoroti kebutuhan kritis akan keamanan webhook.
Ancaman utama terhadap endpoint webhook meliputi:
- Spoofing: Penyerang mengirim webhook palsu, berpura-pura menjadi Didit, untuk mengelabui sistem Anda agar melakukan tindakan yang tidak sah.
- Perusakan: Penyerang mencegat webhook yang sah dan memodifikasi muatannya sebelum mencapai server Anda.
- Serangan Replay: Penyerang menangkap webhook yang sah dan mengirimkannya kembali nanti untuk memicu tindakan yang sama lagi, berpotensi menyebabkan transaksi duplikat atau masalah lainnya.
Mengamankan webhook Anda melibatkan verifikasi identitas pengirim dan memastikan data belum diubah. Didit menyediakan mekanisme yang kuat untuk ini melalui tanda tangan HMAC-SHA256 dan validasi stempel waktu, yang akan kita terapkan di Cloudflare Worker kita.
Menyiapkan Didit Webhook Secret Anda
Sebelum Anda dapat memverifikasi webhook Didit, Anda memerlukan Kunci Rahasia Webhook unik Anda. Kunci ini sangat penting untuk verifikasi tanda tangan kriptografi. Berikut cara mengambilnya:
- Masuk ke Didit Console Anda.
- Navigasi ke Pengaturan → Kunci API.
- Salin Kunci Rahasia Webhook Anda.
Kunci rahasia ini harus disimpan dengan aman dan tidak pernah diekspos secara publik. Untuk Cloudflare Workers, yang terbaik adalah menyimpannya sebagai rahasia Worker atau variabel lingkungan.
Membangun Cloudflare Worker yang Aman untuk Didit Webhook
Cloudflare Workers adalah aplikasi JavaScript, TypeScript, atau WebAssembly yang berjalan di jaringan global Cloudflare, dekat dengan pengguna Anda. Ini membuatnya sangat cepat dan skalabel untuk menangani permintaan webhook yang masuk. Berikut adalah panduan langkah demi langkah untuk membuat Worker yang memproses webhook Didit dengan aman.
1. Buat Cloudflare Worker Anda
Pertama, siapkan proyek Cloudflare Worker baru. Anda dapat melakukannya menggunakan alat CLI wrangler:
npx wrangler generate didit-webhook-handler
cd didit-webhook-handler
2. Tambahkan Didit Webhook Secret Anda sebagai Cloudflare Secret
Untuk menjaga keamanan rahasia webhook Anda, tambahkan sebagai rahasia ke Worker Anda:
npx wrangler secret put DIDIT_WEBHOOK_SECRET
Ketika diminta, tempelkan Kunci Rahasia Webhook Anda dari Didit Console.
3. Terapkan Logika Webhook di index.js
File index.js Worker Anda akan berisi logika untuk menerima, memvalidasi, dan memproses webhook Didit. Langkah-langkah intinya adalah:
- Baca Badan Permintaan Mentah: Tanda tangan HMAC dihasilkan dari badan permintaan mentah, jadi sangat penting untuk tidak menguraikannya sebelum verifikasi.
- Verifikasi Tanda Tangan HMAC-SHA256: Bandingkan tanda tangan yang disediakan di header
X-Signaturedengan tanda tangan yang Anda hasilkan menggunakanDIDIT_WEBHOOK_SECRETAnda dan badan permintaan mentah. - Validasi Stempel Waktu: Periksa header
X-Timestampuntuk memastikan permintaan masih baru (misalnya, dalam 5 menit) untuk mencegah serangan replay. - Uraikan JSON dan Proses: Jika verifikasi lolos, uraikan badan JSON dan tangani hasil verifikasi identitas.
Berikut adalah contoh dasar kode Worker:
import { createHmac } from 'crypto'; // Cloudflare Workers provide 'crypto' module
export default {
async fetch(request, env, ctx) {
if (request.method !== 'POST') {
return new Response('Method Not Allowed', { status: 405 });
}
const diditWebhookSecret = env.DIDIT_WEBHOOK_SECRET;
if (!diditWebhookSecret) {
return new Response('Webhook secret not configured', { status: 500 });
}
const signature = request.headers.get('X-Signature');
const timestamp = request.headers.get('X-Timestamp');
const rawBody = await request.text();
if (!signature || !timestamp || !rawBody) {
return new Response('Missing required webhook headers or body', { status: 400 });
}
// 1. Validasi Stempel Waktu (misalnya, dalam 5 menit)
const FIVE_MINUTES_IN_SECONDS = 300;
const currentTimestamp = Math.floor(Date.now() / 1000);
if (Math.abs(currentTimestamp - parseInt(timestamp, 10)) > FIVE_MINUTES_IN_SECONDS) {
return new Response('Webhook timestamp terlalu lama atau di masa depan', { status: 403 });
}
// 2. Verifikasi Tanda Tangan HMAC-SHA256
const expectedSignature = createHmac('sha256', diditWebhookSecret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
if (expectedSignature !== signature) {
return new Response('Tanda tangan webhook tidak valid', { status: 403 });
}
// 3. Proses muatan webhook
try {
const payload = JSON.parse(rawBody);
// Catat atau proses muatan, misalnya, perbarui status pengguna di database Anda
console.log('Webhook Didit diterima:', payload);
// Contoh: Mengakses status verifikasi
if (payload.event === 'session.completed' && payload.data.status === 'approved') {
console.log(`Pengguna ${payload.data.vendor_data} berhasil diverifikasi.`);
// Picu tindakan lebih lanjut seperti memberikan akses atau memperbarui profil pengguna
}
// Didit menawarkan berbagai produk seperti Verifikasi ID, Liveness Pasif & Aktif, dan AML Screening.
// Muatan webhook akan mencerminkan hasil dari pemeriksaan ini.
return new Response('Webhook berhasil diproses', { status: 200 });
} catch (error) {
console.error('Kesalahan menguraikan badan webhook:', error);
return new Response('Kesalahan menguraikan muatan JSON', { status: 400 });
}
},
};
4. Deploy Worker Anda
Setelah kode Anda siap, deploy ke Cloudflare:
npx wrangler deploy
Setelah deployment, Cloudflare akan memberi Anda URL untuk Worker Anda. Ini adalah endpoint yang akan Anda konfigurasikan di Didit Console Anda untuk menerima webhook.
Mengonfigurasi Didit untuk Mengirim Webhook
Dengan Cloudflare Worker Anda yang aman telah di-deploy, langkah terakhir adalah memberi tahu Didit ke mana harus mengirim notifikasi real-time Anda:
- Kembali ke Didit Console Anda.
- Navigasi ke Alur Kerja dan pilih alur kerja yang ingin Anda konfigurasikan (misalnya, alur kerja KYC Anda yang menggunakan Verifikasi ID Didit dan Liveness Pasif & Aktif).
- Di pengaturan alur kerja, temukan konfigurasi URL Webhook.
- Masukkan URL Cloudflare Worker Anda yang telah di-deploy.
- Simpan perubahan Anda.
Sekarang, setiap kali sesi verifikasi identitas selesai atau statusnya berubah, Didit akan mengirim notifikasi webhook yang aman ke Cloudflare Worker Anda, yang kemudian akan memvalidasi dan memprosesnya.
Bagaimana Didit Membantu
Didit dirancang dengan keamanan dan pengalaman pengembang sebagai intinya. Platform identitas asli AI kami menyediakan arsitektur modular yang memungkinkan Anda menyusun alur kerja verifikasi yang kompleks dengan mudah. Ketika datang ke webhook, Didit menyederhanakan proses dengan:
- Menyediakan Notifikasi Webhook yang Aman: Semua webhook Didit ditandatangani dengan tanda tangan HMAC-SHA256 dan menyertakan stempel waktu, memastikan keaslian dan integritas data yang Anda terima. Ini sangat penting untuk produk seperti Verifikasi ID, Pencocokan Wajah 1:1, dan AML Screening, di mana akurasi data sangat penting.
- Pembaruan Real-time: Dapatkan notifikasi instan untuk setiap tahap proses verifikasi, memungkinkan aplikasi Anda untuk bereaksi segera terhadap hasil verifikasi pengguna.
- Data Komprehensif: Muatan webhook mencakup semua detail yang diperlukan tentang sesi verifikasi, termasuk hasil dari berbagai produk Didit seperti Liveness Pasif & Aktif, Verifikasi Telepon & Email, dan Bukti Alamat.
- Pendekatan Berpusat pada Pengembang: Didit menawarkan sandbox instan, dokumentasi publik yang jelas, dan API yang bersih, membuat integrasi menjadi mudah. Tingkat KYC Inti Gratis kami dan model bayar-per-pemeriksaan-berhasil, tanpa biaya pengaturan, membuatnya mudah untuk memulai dan menskalakan.
Dengan mengintegrasikan webhook Didit dengan Cloudflare Worker yang aman, Anda membangun saluran yang tangguh dan dapat dipercaya untuk pembaruan verifikasi identitas real-time, melindungi bisnis dan pengguna Anda.
Siap untuk Memulai?
Siap untuk melihat Didit beraksi? Dapatkan demo gratis hari ini.
Mulai verifikasi identitas secara gratis dengan tingkat gratis Didit.
Artikel terkait
- Aturan Deepfake Eropa Berlaku: Fokus pada Alat, Bukan Penipuan
- AI dalam Verifikasi Identitas Perjudian: Ancaman dan Solusi
- Aturan identitas stablecoin mencakup penerbitan dan penebusan, bukan transaksi selanjutnya
- Mesir Menanggung Biaya Pembaruan KYC, Bukan Membebankannya kepada Pelanggan
- Unico Bermitra dengan Didit untuk Memperluas Akses Verifikasi Identitas Canggih bagi UKM di Brasil
- Didit vs Onfido: Jangkauan, Harga, Otomatisasi, dan Migrasi