IOSOR Panduan

Tanda tangan webhook dan jendela replay: idempotency agar 02:00 membosankan

Verifikasi tanda tangan, batasi jendela replay, buat webhook masuk idempotent — jangan pernah terima callback tanpa tanda tangan, jangan debit prepaid dua kali pada retry.

Callback tanpa tanda tangan bukan peristiwa. Itu HTTP tidak terautentikasi yang kebetulan mirip payload Anda. Tim yang «terima dulu, verifikasi nanti» membayar pada 02:00: DLR diputar ulang, STOP duplikat, atau debit dompet kedua yang keuangan tidak bisa urai. Prepaid membuat gagal terlihat sebagai uang. Kebiasaan membosankan: verifikasi tanda tangan setiap permintaan, jendela replay terbatas, kunci idempotency yang keuangan baca di samping baris ledger.

IOSOR mengharapkan integrasi B2B yang dapat diaudit: webhook bertanda tangan, rahasia yang bisa diputar, kesalahan client-safe yang tidak menuang merek asing. Dekat USD 1,000+ pemakaian bulanan, ID korelasi dan bukti replay menjadi bahan tinjauan komersial.

Callback tanpa tanda tangan bukan peristiwa

Verifikasi tanda tangan sebelum mengurai bidang bisnis. Tolak tanda tangan hilang, basi, atau tidak cocok dengan kesalahan client-safe — jangan proses «tetap untuk uji coba». Konsumen staging yang melewati verifikasi melatih produksi untuk melewati. Katalog live pesan tidak berarti URL webhook Anda tempat buang publik.

Jendela replay dan mengapa 02:00 terjadi

Pengiriman setidaknya-sekali mencoba ulang pada timeout, 5xx, dan hilang jaringan samar. Retry terlambat pada 02:00 normal. Jendela membatasi berapa lama payload bertanda tangan tetap diterima: terlalu lebar penyerang memutar STOP lama; terlalu sempit retry sah terlihat pemalsuan. Catat penolakan jendela terpisah dari gagal tanda tangan.

Idempotency yang bisa dibaca keuangan

ID peristiwa yang sama harus menghasilkan keadaan akhir yang sama. Ambil ID peristiwa/pesan platform — jangan ciptakan kunci dari cap waktu plus badan. Kembalikan sukses pada ID dikenal tanpa debit ulang. Kiriman keluar butuh disiplin yang sama — idempotensi, coba ulang, dan uang.

Rotasi tanda tangan tanpa kekacauan terima ganda

Putar rahasia tanpa jendela di mana tanda tangan lama dan baru diterima selamanya. Rencanakan tumpang, lalu potong. Jangan tempel rahasia produksi di tiket. Pisahkan konsumen sandbox dan produksi. Dead-letter dengan alat replay agar ops bisa mengendarai ulang konsumen gagal tanpa menciptakan debit kedua. Bawa ID korelasi dari kiriman ke baris ledger agar 02:00 adalah runbook, bukan arkeologi.

Bendera merah

  • Handler menerima badan tanpa tanda tangan «untuk sekarang»
  • Tidak ada jendela replay, atau diukur dalam minggu
  • Timpa status tanpa membandingkan cap waktu
  • Efek samping CRM/email sebelum ACK
  • Rahasia produksi di obrolan
  • ID peristiwa duplikat bulan lalu tanpa yang mengawasi
  • Kesalahan klien menuang kode hulu mentah

Mulai dengan IOSOR

Buka konsol IOSOR Anda untuk memeriksa setelan titik akhir webhook aktif pada tanda terima pengiriman dan panggilan balik peristiwa masuk. Tetapkan jendela verifikasi tanda tangan replay yang ketat selama lima menit, lalu ikat penangan Anda secara ketat ke ID peristiwa platform. Uji titik akhir dengan payload duplikat di staging untuk memastikan sistem membalas status 200 OK tanpa memproses ulang logika bisnis.

Intisari IOSOR

Penanganan webhook tanpa verifikasi tanda tangan dan jendela replay yang longgar dapat mengubah retri jaringan biasa menjadi kerentanan keamanan yang serius. Operator harus membatasi validitas tanda tangan melalui stempel waktu UTC di konsol dan menerapkan idempotensi ketat pada ledger agar upaya pengiriman otomatis pukul 02:00 tetap dapat diprediksi tanpa risiko duplikasi data. Pastikan ekspor log dipantau secara rutin untuk mendeteksi anomali pengiriman.

Apakah panduan ini membantu?

Panduan terkait