Webhooks und Integrationen
Eine Webhook-Signatur prüfen
Berechnen Sie die Signatur über den rohen Anfragetext, vor jedem JSON-Parsing, und vergleichen Sie in konstanter Zeit. Erneutes Serialisieren der Nutzlast ändert die Bytes, und die Signatur passt dann nie mehr.
Schritte
- Erfassen Sie den rohen Text als Bytes. Die meisten Frameworks geben standardmäßig ein geparstes Objekt, was schon zu spät ist.
- Berechnen Sie die Signatur über genau diese Bytes mit dem Geheimnis Ihres Endpunkts.
- Vergleichen Sie mit einem konstanten Zeitvergleich statt mit Stringgleichheit.
- Parsen Sie das JSON erst, wenn die Signatur verifiziert ist.
- Weisen Sie alles Fehlgeschlagene ab und loggen Sie die Delivery-ID statt des Texts.
So prüfen Sie das Ergebnis
Eine echte Zustellung verifiziert, dieselbe Nutzlast mit einem geänderten Zeichen nicht.
Was meistens schiefgeht
- Parsen und neu serialisieren vor der Signaturberechnung.
- Eine Body-Parser-Middleware, die den Stream vor Ihrem Handler verbraucht.
- Einfaches
===auf der Signatur, was Timing verrät.
Hat das Ihre Aufgabe gelöst?
Das hat nicht geholfen
Schreiben Sie uns mit Plattform und Version, Ihren Schritten, dem erwarteten Ergebnis und dem betroffenen Arbeitsbereich oder QR-Code. Maskieren Sie jedes Geheimnis, bevor Sie etwas anhängen.
An den Support schreiben