Hoppa till innehåll

Webhooks och integrationer

Verifiera en webhook-signatur

Beräkna signaturen över den råa förfrågningskroppen, före all JSON-parsning, och jämför i konstant tid. Att serialisera om nyttolasten ändrar byten, och signaturen stämmer då aldrig igen.

Steg

  1. Fånga den råa kroppen som byte. De flesta ramverk ger dig som standard ett redan parsat objekt, vilket redan är för sent.
  2. Beräkna signaturen över exakt de byten med din endpoints hemlighet.
  3. Jämför med en konstanttidsjämförelse i stället för stränglikhet.
  4. Parsa JSON först när signaturen verifierats.
  5. Avvisa allt som misslyckas, och logga leverans-id:t i stället för kroppen.

Så kontrollerar du resultatet

En äkta leverans verifieras, och samma nyttolast med ett ändrat tecken gör det inte.

Vad som brukar gå fel

  • Parsa och serialisera om innan signaturen beräknas.
  • En body parser-middleware som förbrukar strömmen före din handler.
  • Ett enkelt === på signaturen, som läcker via timing.
Löste det här ditt problem?

Det här hjälpte inte

Skriv till oss med plattform och version, stegen du tog, förväntat resultat och den arbetsyta eller QR-kod det gäller. Maskera varje hemlighet innan du bifogar något.

Skriv till supporten