Verifiera webhook-signaturer säkert
Skydda betalningsbackend mot förfalskade händelser genom att validera Stripes webhook-signaturer och följa säkra metoder för endpoints.
Verifiera webhook-signaturer säkert är en gratis lektion i Betalningar med Stripe och SaaS-faktureringssystem på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Betalningar med Stripe och SaaS-faktureringssystem, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Betalningar med Stripe och SaaS-faktureringssystem innehåller totalt 4 lektioner.
Varför verifiera webhookar?
Er webhook-endpoint är offentlig. Utan verifiering kan en angripare skicka en falsk payment_succeeded-händelse med POST och låsa upp betalda funktioner kostnadsfritt.
Signeringshemligheten
Varje webhook-endpoint har en signeringshemlighet (börjar med whsec_). Stripe använder den för att signera varje händelse som skickas till er.
Headern Stripe-Signature
Varje webhook-begäran innehåller en header med namnet Stripe-Signature, som innehåller en tidsstämpel och en HMAC-signatur för nyttolasten.
// Stripe-Signature: t=1700000000,v1=5257a8...Använd den råa begärandekroppen
Signaturverifiering kräver den exakta råa begärandekroppen. Om ett ramverk först tolkar JSON ändras byten, och verifieringen misslyckas.
app.post('/webhook',
express.raw({ type: 'application/json' }),
handler
);Verifiera med SDK:t
Stripe SDK utför HMAC-beräkningen åt er via constructEvent.
function verify(rawBody, sig, secret, stripe) {
return stripe.webhooks.constructEvent(rawBody, sig, secret);
}Hantera verifieringsfel
Om verifieringen utlöser ett undantag ska ni avvisa begäran med status 400. Bearbeta aldrig en overifierad händelse.
function process(ok) {
if (!ok) return { status: 400, body: 'invalid signature' };
return { status: 200, body: 'received' };
}
console.log(process(false));Tidsstämpelns tolerans
Signaturen innehåller en tidsstämpel. Stripe avvisar händelser som är äldre än ett toleransintervall för att blockera replay-attacker med fångade nyttolaster.
Tidskonstant jämförelse
Under huven jämförs signaturer med konstant tidsåtgång för att undvika timingattacker. SDK:t hanterar detta; skriv aldrig själv en enkel likhetskontroll.
Svara snabbt, bearbeta senare
Bekräfta snabbt med status 200 och utför sedan det tunga arbetet asynkront. Långsamma svar får Stripe att försöka igen och kan orsaka dubbletter.
Skydda hemligheten
Lagrasigneringens hemlighet i miljövariabler, aldrig i källkodshanteringen. Rotera den via Dashboard om den läcker.
const secret = process.env.STRIPE_WEBHOOK_SECRET;
console.log(Boolean(secret));Hemligheter per endpoint
Varje registrerad endpoint har en egen hemlighet. Använd rätt hemlighet för den URL som tar emot händelsen, särskilt mellan test- och liveläge.
Snabb kontroll
Varför måste ni använda den råa begärandekroppen vid verifiering?
Sammanfattning
Ni har säkrat er webhook-endpoint:
- Verifiera Stripe-Signature med signeringshemligheten
- Använd den råa begärandekroppen och SDK:ts constructEvent
- Avvisa verifieringsfel och använd tidsstämpelns tolerans mot replay-attacker
- Förvara hemligheter i miljövariabler och svara snabbt
Lär dig Betalningar med Stripe och SaaS-faktureringssystem med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 12
- Lektioner
- 48
Vanliga frågor
Är lektionen ”Verifiera webhook-signaturer säkert” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Betalningar med Stripe och SaaS-faktureringssystem, inklusive ”Verifiera webhook-signaturer säkert”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Betalningar med Stripe och SaaS-faktureringssystem innehåller totalt 4 lektioner.
Vad lär jag mig i ”Verifiera webhook-signaturer säkert”?
Skydda betalningsbackend mot förfalskade händelser genom att validera Stripes webhook-signaturer och följa säkra metoder för endpoints. Ni övar på Betalningar med Stripe och SaaS-faktureringssystem med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Betalningar med Stripe och SaaS-faktureringssystem?
Du behöver inga förkunskaper. Utbildningen i Betalningar med Stripe och SaaS-faktureringssystem på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Verifiera webhook-signaturer säkert”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Betalningar med Stripe och SaaS-faktureringssystem-lektionen?
Ja. Varje Betalningar med Stripe och SaaS-faktureringssystem-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Säker lagring av betalningsmetoder (tokens)
- Implementera Strong Customer Authentication (SCA)
- Bästa praxis för PCI-efterlevnad för utvecklare
- Verifiera webhook-signaturer säkert