Webhook-Daten vor Verarbeitung prüfen: Prüfen Sie die Signatur mit HMAC-SHA-256 und konstantzeitlichem Vergleich.; Bestätigen Sie Ereignistyp und Aktion anhand des GitHub-Headers X-GitHub-Event.; Speichern Sie Zustellkennungen, um doppelte CRM-Änderungen zu vermeiden.
Bild: Marketingfluss

Freigaben

Teil von Marketing-Schnittstellen

Webhook-Daten vor der Verarbeitung prüfen

So prüfen Sie Herkunft, Ereignistyp, Pflichtwerte und wiederholte Zustellungen, bevor ein Webhook Daten im CRM ändert.

Vor jeder weiteren Verarbeitung prüfen Sie drei Dinge: Stammt die Anfrage nach der anbieterspezifischen Signaturprüfung vom erwarteten Absender, passen Ereignistyp und Aktion zum Workflow, und sind die nötigen Werte vorhanden? Erst wenn alle Prüfungen bestanden sind, darf der Webhook eine CRM-Änderung auslösen; ein HTTP-2XX bestätigt zunächst nur den Empfang.

Herkunft prüfen

Bei GitHub steht die Signatur im Header X-Hub-Signature-256. Berechnen Sie mit dem geheimen Token und dem unveränderten Anfrageinhalt den HMAC-Hash als Hex-Digest; er beginnt mit sha256=. Behandeln Sie den Inhalt als UTF-8 und vergleichen Sie die Signaturen mit einem konstantzeitlichen Verfahren, nicht mit ==.

Erzeugen Sie für GitHub ein zufälliges Secret mit hoher Entropie und speichern Sie es sicher: weder im Anwendungscode noch in einem Repository. Verwenden Sie HTTPS und lassen Sie die SSL-Prüfung aktiviert. Eine IP-Allowlist kann eine zusätzliche Schutzschicht sein; die aktuellen GitHub-IP-Adressen liefert GET /meta und die Liste sollte regelmäßig aktualisiert werden.

Für ausgehende HubSpot-Anfragen an OAuth-Apps gelten andere Header und Prüfschritte: X-HubSpot-Signature-v3 und X-HubSpot-Request-Timestamp. Lehnen Sie eine Anfrage ab, wenn der Zeitstempel älter als fünf Minuten ist. Verketten Sie anschließend UTF-8-kodiert requestMethod + requestUri + requestBody + timestamp, berechnen Sie mit dem Application Secret einen HMAC-SHA-256-Hash, kodieren Sie das Ergebnis mit Base64 und vergleichen Sie es konstantzeitlich mit der Signatur.

Die Verfahren von GitHub und HubSpot sind nicht austauschbar. Prüfen Sie die Signatur, bevor Sie Nutzdaten weiterverarbeiten oder eine CRM-Wirkung erlauben.

Ereignis und Inhalt eingrenzen

Prüfen Sie nach erfolgreicher Echtheitsprüfung, ob der Workflow den Ereignistyp und die gemeldete Aktion zulässt. Bei GitHub steht der Ereignistyp im Request-Header X-GitHub-Event, die Aktion im obersten Payload-Feld action. Abonnieren Sie nur die benötigten Ereignistypen und lassen Sie nur die für den Workflow vorgesehenen Kombinationen weiter. GitHub ergänzt Ereignistypen und Aktionen; unbekannte Kombinationen dürfen daher nicht automatisch eine CRM-Änderung auslösen.

Prüfen Sie danach die Werte, die der konkrete Übergabefall benötigt, etwa eine Ereigniskennung, eine Kontaktkennung und einen bekannten Zielwert. Fehlende Pflichtwerte oder unbekannte Auswahlwerte gehören in einen sichtbaren Korrekturfall. Unbekannte Payload-Felder dürfen keine beliebigen CRM-Felder befüllen.

Wiederholte Zustellungen behandeln

Webhooks können erneut zugestellt werden. Speichern Sie eine geeignete Zustellkennung und das Verarbeitungsergebnis, damit dieselbe Zustellung nicht dieselbe CRM-Wirkung erneut auslöst. Prüfen Sie für jeden Anbieter, ob stabile Kennungen und das Wiederholungsverhalten dokumentiert sind.

Berücksichtigen Sie gleichzeitige Verarbeitungsversuche und den Fall, dass die CRM-Änderung erfolgt, das Ergebnis aber nicht gespeichert wird. Prüfen Sie dann zuerst den tatsächlichen Zielzustand, bevor Sie eine weitere CRM-Wirkung zulassen.

GitHub empfiehlt eine HTTP-2XX-Bestätigung innerhalb von zehn Sekunden; bei Bedarf kann die weitere Verarbeitung nachgelagert erfolgen. Die Echtheitsprüfung muss vor der vertrauensvollen Annahme der Daten stattfinden, und Ereignistyp, Aktion sowie Pflichtwerte müssen vor der CRM-Änderung geprüft sein.

Jeden Ausgang sichtbar machen

Befund / Ausgang

Herkunft nicht bestätigt
Anfrage abweisen; keine CRM-Wirkung
Ereignis nicht vorgesehen
Ohne CRM-Wirkung ignorieren und nachvollziehbar erfassen
Pflichtwert fehlt oder Zielwert unbekannt
Zur Korrektur zurückhalten
Zielantwort unklar
Zielzustand klären, bevor erneut geschrieben wird
Zustellung bereits verarbeitet
Gespeichertes Ergebnis verwenden; keine zweite Wirkung

Eine Fehlermeldung sollte Kennung, Zeitpunkt und Ursache enthalten. Geheimnisse und unnötige Personendaten gehören nicht in allgemeine Benachrichtigungen. Kontrollieren Sie bei der Abnahme sowohl die Eingangsentscheidung als auch den tatsächlichen CRM-Zustand.

Mehr aus Freigaben

Schnittstellen

Kampagnenzugehörigkeit an das CRM übergeben und prüfen

Klären Sie Person, Zielkampagne, Auslöser und Mitgliedsstatus, bevor eine Marketingaktion eine CRM-Kampagnenzugehörigkeit erzeugt.

Schnittstellen

Native Anbindungen mit einer Integrationsschicht vergleichen

Vergleichen Sie native Anbindungen und Integrationsschichten anhand von Datenmodell, Feldregeln, Ausnahmen, Betrieb und Zielzustand.