Digital Transformation

Webhook Signing (HMAC Signature Verification)

Vito Atmo
Vito Atmo·27 Mei 2026·0 kali dibaca·2 min baca

TL;DR: Webhook signing menggunakan HMAC (Hash-based Message Authentication Code) untuk membuktikan bahwa payload webhook benar dikirim oleh layanan resmi. Penerima menghitung ulang signature dari body request memakai shared secret, lalu membandingkannya dengan header signature. Jika tidak cocok, request ditolak. Praktik ini wajib untuk pembayaran, notifikasi transaksi, dan integrasi pihak ketiga.

Apa itu Webhook Signing?

Webhook signing adalah lapisan keamanan tambahan pada endpoint webhook agar penerima dapat memverifikasi sumber pesan. Server pengirim seperti Stripe, Midtrans, atau Xendit menghitung HMAC SHA-256 dari body request memakai shared secret, lalu menaruh hasilnya di header (misalnya X-Signature atau Stripe-Signature). Server penerima mengulang perhitungan yang sama dengan secret yang sama dan membandingkan hasilnya. Tanpa verifikasi ini, siapa pun yang menebak URL webhook bisa memalsukan notifikasi pembayaran.

Cara Kerja Singkat

LangkahAksi pengirimAksi penerima
1Susun body JSONTerima request
2Hitung HMAC SHA-256 dengan secretAmbil header signature
3Kirim header signature + bodyHitung ulang HMAC dari body
4-Bandingkan dua nilai pakai constant-time compare

Constant-time comparison penting agar tidak bocor info via timing attack. Selain HMAC, banyak penyedia juga menambahkan timestamp di header dan menolak request lebih lama dari 5 menit untuk mencegah replay attack.

Kenapa Penting?

Endpoint webhook umumnya publik. Tanpa signing, attacker bisa menebak URL dan mengirim notifikasi palsu "pembayaran sukses" yang membuat sistem melepas barang atau memberi akses premium. Untuk integrasi gateway pembayaran Indonesia seperti Midtrans dan Xendit, signature verification adalah praktik wajib yang direkomendasikan dokumentasi resmi mereka. Di sisi developer marketer, pemahaman ini juga relevan saat menghubungkan API CRM dengan platform iklan agar event conversion tidak bisa di-spoof.

Pertanyaan Umum

Apa bedanya webhook signing dengan API key biasa?

API key membuktikan identitas pemanggil di header Authorization. Webhook signing membuktikan keaslian dan integritas payload, sehingga konten body tidak bisa diubah di tengah jalan.

Apakah HTTPS saja sudah cukup?

Tidak. HTTPS mencegah penyadapan, tetapi tidak mencegah pihak lain yang tahu URL webhook untuk mengirim payload palsu langsung ke endpoint.

Bagikan