Pentingnya Mengamankan Jalur Callback Pembayaran
Webhook adalah mekanisme utama yang digunakan payment gateway untuk memberi tahu server merchant bahwa pembayaran telah berhasil. Namun tanpa enkripsi dan validasi ketat, endpoint ini rentan terhadap eksploitasi seperti replay attacks atau inject data palsu.
1. Verifikasi Signature Kriptografis (HMAC SHA-256)
Setiap payload callback yang dikirimkan wajib memuat signature unik yang dihasilkan dari kombinasi data transaksi dan secret key merchant. Server Anda wajib menghitung ulang signature tersebut sebelum mengubah status pesanan.
2. Proteksi Double-Credit dengan Idempotency Key
Jaringan internet dapat mengirimkan callback berulang jika terjadi latency. Selalu pastikan sistem Anda memiliki validasi status: jika transaksi sudah berstatus Paid, request callback berikutnya harus diabaikan tanpa memproses saldo dua kali.
3. Filter IP & Whitelist Gateway
Batasi akses ke endpoint webhook hanya dari alamat IP resmi payment gateway untuk memastikan request tidak ditembak langsung oleh pihak ketiga yang tidak bertanggung jawab.