Mengesahkan Tandatangan Webhook dengan Selamat
Lindungi bahagian belakang pembayaran Anda daripada peristiwa palsu dengan mengesahkan tandatangan webhook Stripe dan mengikuti amalan titik akhir yang selamat.
Mengesahkan Tandatangan Webhook dengan Selamat ialah pelajaran Sistem Pembayaran Stripe dan Pengebilan SaaS percuma di CoddyKit. Ini ialah pelajaran 4 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Sistem Pembayaran Stripe dan Pengebilan SaaS, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Sistem Pembayaran Stripe dan Pengebilan SaaS merangkumi sejumlah 4 pelajaran.
Mengapa Mengesahkan Webhook?
Titik akhir webhook anda adalah awam. Tanpa pengesahan, penyerang boleh menghantar peristiwa payment_succeeded palsu melalui POST dan membuka ciri berbayar secara percuma.
Rahsia Tandatangan
Setiap titik akhir webhook mempunyai rahsia tandatangan (bermula dengan whsec_). Stripe menggunakannya untuk menandatangani setiap peristiwa yang dihantar kepada anda.
Pengepala Stripe-Signature
Setiap permintaan webhook membawa pengepala Stripe-Signature yang mengandungi cap masa dan tandatangan HMAC bagi muatan.
// Stripe-Signature: t=1700000000,v1=5257a8...Gunakan Badan Mentah
Pengesahan tandatangan memerlukan badan permintaan mentah yang tepat. Jika rangka kerja menghuraikan JSON terlebih dahulu, bait akan berubah dan pengesahan gagal.
app.post('/webhook',
express.raw({ type: 'application/json' }),
handler
);Mengesahkan dengan SDK
SDK Stripe melakukan pengiraan HMAC untuk anda melalui constructEvent.
function verify(rawBody, sig, secret, stripe) {
return stripe.webhooks.constructEvent(rawBody, sig, secret);
}Mengendalikan Kegagalan Pengesahan
Jika pengesahan menghasilkan ralat, tolak permintaan dengan 400. Jangan proses peristiwa yang tidak disahkan.
function process(ok) {
if (!ok) return { status: 400, body: 'invalid signature' };
return { status: 200, body: 'received' };
}
console.log(process(false));Toleransi Cap Masa
Tandatangan mengandungi cap masa. Stripe menolak peristiwa yang lebih lama daripada tetingkap toleransi untuk menyekat serangan ulangan menggunakan muatan yang telah dirakam.
Perbandingan Masa Malar
Di sebalik tabir, tandatangan dibandingkan dalam masa malar untuk mengelakkan serangan pemasaan. SDK mengendalikan perkara ini; jangan bina sendiri semakan kesamaan mudah.
Balas dengan Pantas, Proses Kemudian
Berikan pengakuan dengan 200 dengan segera, kemudian lakukan kerja berat secara tak segerak. Respons lambat menyebabkan Stripe mencuba semula dan boleh menghasilkan pendua.
Lindungi Rahsia
Simpan rahsia tandatangan dalam pemboleh ubah persekitaran, bukan dalam kawalan sumber. Putarkannya jika bocor dengan menggunakan papan pemuka.
const secret = process.env.STRIPE_WEBHOOK_SECRET;
console.log(Boolean(secret));Rahsia Mengikut Titik Akhir
Setiap titik akhir yang didaftarkan mempunyai rahsianya sendiri. Gunakan rahsia yang betul untuk URL yang menerima peristiwa, khususnya antara mod ujian dan mod langsung.
Semakan Pantas
Mengapakah anda mesti menggunakan badan permintaan mentah untuk pengesahan?
Ringkasan
Anda telah melindungi titik akhir webhook anda:
- Sahkan Stripe-Signature dengan rahsia tandatangan
- Gunakan badan mentah dan SDK constructEvent
- Tolak kegagalan dan gunakan toleransi cap masa untuk menentang serangan ulangan
- Simpan rahsia dalam pemboleh ubah persekitaran dan balas dengan pantas
Pelajari Sistem Pembayaran Stripe dan Pengebilan SaaS dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 12
- Pelajaran
- 48
Soalan Lazim
Adakah pelajaran “Mengesahkan Tandatangan Webhook dengan Selamat” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Sistem Pembayaran Stripe dan Pengebilan SaaS, termasuk “Mengesahkan Tandatangan Webhook dengan Selamat”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Sistem Pembayaran Stripe dan Pengebilan SaaS merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Mengesahkan Tandatangan Webhook dengan Selamat”?
Lindungi bahagian belakang pembayaran Anda daripada peristiwa palsu dengan mengesahkan tandatangan webhook Stripe dan mengikuti amalan titik akhir yang selamat. Anda berlatih Sistem Pembayaran Stripe dan Pengebilan SaaS menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Sistem Pembayaran Stripe dan Pengebilan SaaS?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Sistem Pembayaran Stripe dan Pengebilan SaaS di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 4 daripada 4.
Berapa lamakah pelajaran “Mengesahkan Tandatangan Webhook dengan Selamat” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Sistem Pembayaran Stripe dan Pengebilan SaaS ini?
Ya. Setiap pelajaran Sistem Pembayaran Stripe dan Pengebilan SaaS menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Menyimpan Kaedah Pembayaran dengan Selamat (Token)
- Melaksanakan Pengesahan Pelanggan Kukuh (SCA)
- Amalan Terbaik Pematuhan PCI untuk Pembangun
- Mengesahkan Tandatangan Webhook dengan Selamat