Beranda / Panduan / Memverifikasi tanda tangan webhook dan API — panduan praktis HMAC

Webhook adalah cara sebuah layanan eksternal mengirim event ke server Anda. Namun, karena siapa pun dapat mengirim permintaan ke URL tersebut, Anda harus memastikan apakah permintaan yang diterima benar-benar berasal dari layanan itu. Metode standar yang digunakan untuk ini adalah tanda tangan HMAC.

Pihak pengirim dan penerima berbagi kunci rahasia. Pihak pengirim melakukan hash HMAC-SHA256 atas isi permintaan dengan kunci tersebut, lalu menyertakan tanda tangan itu di header. Pihak penerima melakukan hash atas isi yang sama dengan kunci yang sama dan membandingkan apakah kedua tanda tangan cocok.

Jika cocok, dua hal terjamin sekaligus. Karena hanya pihak yang memegang kunci yang dapat membuat tanda tangan yang benar, keaslian terkonfirmasi; dan karena tanda tangan berubah bila isi berubah sedikit saja, integritas terkonfirmasi. Sebagian besar webhook seperti GitHub, Stripe, dan Slack menggunakan cara ini.

Anda dapat mencoba verifikasi ini langsung di AG HASH. Aktifkan opsi HMAC, masukkan kunci bersama, lalu tempel isi permintaan, maka nilai HMAC-SHA256 akan muncul. Bandingkan nilai ini dengan tanda tangan di header permintaan. Pada verifikasi nyata, disarankan menggunakan perbandingan waktu konstan untuk menghindari serangan timing.

Hash dengan algoritma ini