Sikker verificering af webhook-signaturer
Beskyt Deres betalingsbackend mod forfalskede hændelser ved at validere Stripes webhook-signaturer og følge sikre fremgangsmåder for endpoints.
Sikker verificering af webhook-signaturer er en gratis Betalinger med Stripe og SaaS-faktureringssystemer-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Betalinger med Stripe og SaaS-faktureringssystemer, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Betalinger med Stripe og SaaS-faktureringssystemer-kurset indeholder 4 lektioner i alt.
Hvorfor skal webhooks verificeres?
Dit webhook-endepunkt er offentligt. Uden verificering kunne en angriber sende en falsk payment_succeeded-hændelse med POST og låse op for betalingskrævende funktioner gratis.
Signeringshemmeligheden
Hvert webhook-endepunkt har en signeringshemmelighed (som begynder med whsec_). Stripe bruger den til at signere alle hændelser, der sendes til dig.
Headeren Stripe-Signature
Hver webhook-anmodning indeholder en Stripe-Signature-header med et tidsstempel og en HMAC-signatur for nyttelasten.
// Stripe-Signature: t=1700000000,v1=5257a8...Brug den rå anmodningstekst
Signaturverificering kræver den præcis rå anmodningstekst. Hvis et framework først fortolker JSON, ændres byteindholdet, og verificeringen mislykkes.
app.post('/webhook',
express.raw({ type: 'application/json' }),
handler
);Verificering med SDK'et
Stripe SDK'et udfører HMAC-beregningen for dig via constructEvent.
function verify(rawBody, sig, secret, stripe) {
return stripe.webhooks.constructEvent(rawBody, sig, secret);
}Håndtering af fejl ved verificering
Hvis verificeringen udløser en fejl, skal du afvise anmodningen med statuskoden 400. Behandl aldrig en ikke-verificeret hændelse.
function process(ok) {
if (!ok) return { status: 400, body: 'invalid signature' };
return { status: 200, body: 'received' };
}
console.log(process(false));Tidsstempeltolerance
Signaturen indeholder et tidsstempel. Stripe afviser hændelser, der er ældre end et tolerancerum, for at blokere gentagelsesangreb med opsnappede nyttelaster.
Sammenligning i konstant tid
Under motorhjelmen sammenlignes signaturer på konstant tid for at undgå timingangreb. SDK'et håndterer dette; skriv aldrig selv en simpel lighedskontrol.
Svar hurtigt, og behandl senere
Send hurtigt en bekræftelse med statuskoden 200, og udfør derefter det tunge arbejde asynkront. Langsomme svar får Stripe til at prøve igen og kan skabe dubletter.
Beskyt hemmeligheden
Gem signeringshemmeligheden i miljøvariabler, aldrig i kildekodehåndteringen. Rotér den via kontrolpanelet, hvis den bliver lækket.
const secret = process.env.STRIPE_WEBHOOK_SECRET;
console.log(Boolean(secret));Hemmeligheder pr. endepunkt
Hvert registreret endepunkt har sin egen hemmelighed. Brug den korrekte hemmelighed til den URL, der modtager hændelsen, især mellem test- og live-tilstande.
Hurtigt tjek
Hvorfor skal du bruge den rå anmodningstekst til verificering?
Opsummering
Du har sikret dit webhook-endepunkt:
- Verificér Stripe-Signature med signeringshemmeligheden
- Brug den rå tekst og SDK'ets constructEvent
- Afvis fejl, og brug tidsstempeltolerance mod gentagelser
- Opbevar hemmeligheder i miljøvariabler, og svar hurtigt
Lær Betalinger med Stripe og SaaS-faktureringssystemer med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 12
- Lektioner
- 48
Ofte stillede spørgsmål
Er lektionen “Sikker verificering af webhook-signaturer” gratis?
Ja — alle 3 lektioner i læringssporet Betalinger med Stripe og SaaS-faktureringssystemer, inklusive “Sikker verificering af webhook-signaturer”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Betalinger med Stripe og SaaS-faktureringssystemer-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Sikker verificering af webhook-signaturer”?
Beskyt Deres betalingsbackend mod forfalskede hændelser ved at validere Stripes webhook-signaturer og følge sikre fremgangsmåder for endpoints. Du øver dig i Betalinger med Stripe og SaaS-faktureringssystemer med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Betalinger med Stripe og SaaS-faktureringssystemer?
Der kræves ingen tidligere erfaring. Betalinger med Stripe og SaaS-faktureringssystemer på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Sikker verificering af webhook-signaturer”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Betalinger med Stripe og SaaS-faktureringssystemer-lektion?
Ja. Alle Betalinger med Stripe og SaaS-faktureringssystemer-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Sikker lagring af betalingsmetoder (tokens)
- Implementering af Strong Customer Authentication (SCA)
- Bedste praksis for PCI-compliance for udviklere
- Sikker verificering af webhook-signaturer