# Webhook-Signaturen überprüfen

Überprüfen Sie HMAC-Signaturen, überprüfen Sie Zeitstempel und verarbeiten Sie doppelte Webhooks.

## Unveränderten Request-Body bewahren
Überprüfen Sie die empfangenen Bytes, bevor Sie JSON analysieren/erneut serialisieren. Sogar Leerzeichen ändern den MAC. Konfigurieren Sie die Raw-Body-Verarbeitung Ihres Frameworks entsprechend.

## Kopfzeilen
Verwenden Sie `Tembuilder-Event`, `Tembuilder-Delivery-Id`, `Tembuilder-Attempt`, `Tembuilder-Timestamp` und `Tembuilder-Signature`. Die Signatur ist `v1=` plus ein Hex HMAC-SHA256. Das offenbarte Signaturgeheimnis ist unpadded base64url; dekodieren Sie es zuerst in Bytes.

## Signierte Bytes
```text
timestamp + "." + raw_body
```

Berechnen Sie HMAC-SHA256 mit dem entschlüsselten Geheimnis und vergleichen Sie es in konstanter Zeit.

## Zeitstempel und Duplikate
Legen Sie ein geeignetes Empfängerannahmefenster fest, zum Beispiel ±5 Minuten, wenn es für Ihre Uhren und Ihren Betrieb geeignet ist. Hierbei handelt es sich um eine Empfängeranweisung, nicht um eine Tembuilder-Lieferzeitgarantie. Deduplizieren Sie Liefer-IDs und gleichen Sie den Geschäftsstatus anhand der Render-ID ab. Gehen Sie nicht von genau einmaligen oder auftragsbezogenen Benachrichtigungen aus.

## Test vor der Produktion
Akzeptieren Sie einen korrekt unterzeichneten Test. Eine Ein-Byte-Body-Änderung und einen veralteten Zeitstempel ablehnen. Stellen Sie dieselbe ID zweimal bereit und stellen Sie sicher, dass geschäftliche Nebenwirkungen nicht dupliziert werden. Halten Sie Geheimnisse und sensible Nutzlasten von Protokollen fern.
