Betalingen met Stripe en SaaS-factureringssystemen · Les

Webhookhandtekeningen veilig verifiëren

Bescherm uw betaalbackend tegen vervalste events door Stripe-webhookhandtekeningen te valideren en veilige endpointpraktijken te volgen.

Les 4 van 413 stappen

Webhookhandtekeningen veilig verifiëren is een gratis Betalingen met Stripe en SaaS-factureringssystemen-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Betalingen met Stripe en SaaS-factureringssystemen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Betalingen met Stripe en SaaS-factureringssystemen bevat in totaal 4 lessen.

Waarom webhooks verifiëren?

Je webhook-eindpunt is openbaar. Zonder verificatie kan een aanvaller een nepgebeurtenis payment_succeeded versturen en betaalde functies gratis ontgrendelen.

Het ondertekeningsgeheim

Elk webhook-eindpunt heeft een ondertekeningsgeheim (begint met whsec_). Stripe gebruikt dit om elke gebeurtenis die het verstuurt te ondertekenen.

De header Stripe-Signature

Elk webhookverzoek bevat een header Stripe-Signature met een tijdstempel en een HMAC-handtekening van de payload.

// Stripe-Signature: t=1700000000,v1=5257a8...

De onbewerkte body gebruiken

Voor handtekeningverificatie is de exacte onbewerkte request-body nodig. Als een framework eerst JSON parseert, veranderen de bytes en mislukt de verificatie.

app.post('/webhook',
  express.raw({ type: 'application/json' }),
  handler
);

Verifiëren met de SDK

De Stripe SDK voert de HMAC-berekening voor je uit via constructEvent.

function verify(rawBody, sig, secret, stripe) {
  return stripe.webhooks.constructEvent(rawBody, sig, secret);
}

Een mislukte verificatie afhandelen

Als de verificatie een fout oplevert, wijs je het verzoek af met statuscode 400. Verwerk nooit een niet-geverifieerde gebeurtenis.

function process(ok) {
  if (!ok) return { status: 400, body: 'invalid signature' };
  return { status: 200, body: 'received' };
}
console.log(process(false));

Tolerantie voor tijdstempels

De handtekening bevat een tijdstempel. Stripe weigert gebeurtenissen die ouder zijn dan een tolerantieperiode, om herhalingsaanvallen met onderschepte payloads te blokkeren.

Vergelijken in constante tijd

Onder de motorkap worden handtekeningen vergeleken in constante tijd om timingaanvallen te voorkomen. De SDK handelt dit af; schrijf nooit zelf een eenvoudige gelijkheidscontrole.

Snel reageren, later verwerken

Bevestig snel met statuscode 200 en voer daarna het zware werk asynchroon uit. Trage antwoorden zorgen ervoor dat Stripe het verzoek opnieuw probeert en kunnen duplicaten veroorzaken.

Het geheim veilig bewaren

Sla het ondertekeningsgeheim op in omgevingsvariabelen, nooit in versiebeheer. Roteer het via het dashboard als het uitlekt.

const secret = process.env.STRIPE_WEBHOOK_SECRET;
console.log(Boolean(secret));

Geheimen per eindpunt

Elk geregistreerd eindpunt heeft een eigen geheim. Gebruik het juiste geheim voor de URL die de gebeurtenis ontvangt, vooral bij test- en live-modi.

Korte controle

Waarom moet je voor verificatie de onbewerkte request-body gebruiken?

Samenvatting

Je hebt je webhook-eindpunt beveiligd:

  • Verifieer de Stripe-Signature met het ondertekeningsgeheim
  • Gebruik de onbewerkte body en de SDK-functie constructEvent
  • Wijs mislukte verificaties af en gebruik tijdstempeltolerantie tegen herhalingen
  • Bewaar geheimen in omgevingsvariabelen en reageer snel
Gratis beginnen

Leer Betalingen met Stripe en SaaS-factureringssystemen met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “Webhookhandtekeningen veilig verifiëren” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad Betalingen met Stripe en SaaS-factureringssystemen, waaronder “Webhookhandtekeningen veilig verifiëren”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Betalingen met Stripe en SaaS-factureringssystemen bevat in totaal 4 lessen.

Wat leer ik in “Webhookhandtekeningen veilig verifiëren”?

Bescherm uw betaalbackend tegen vervalste events door Stripe-webhookhandtekeningen te valideren en veilige endpointpraktijken te volgen. Je oefent met Betalingen met Stripe en SaaS-factureringssystemen door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Betalingen met Stripe en SaaS-factureringssystemen te beginnen?

Ervaring vooraf is niet nodig. Betalingen met Stripe en SaaS-factureringssystemen op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Webhookhandtekeningen veilig verifiëren”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Betalingen met Stripe en SaaS-factureringssystemen?

Ja. Elke les over Betalingen met Stripe en SaaS-factureringssystemen bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Betaalmethoden veilig opslaan (tokens)
  2. Strong Customer Authentication (SCA) implementeren
  3. PCI-compliance: best practices voor developers
  4. Webhookhandtekeningen veilig verifiëren
← Terug naar Betalingen met Stripe en SaaS-factureringssystemen