Skip to main content

Bewährte Methoden für die Verwendung von Webhooks

Wende diese bewährten Methoden an, um die Sicherheit und Leistung bei der Verwendung von Webhooks zu verbessern.

Abonnieren Sie die Mindestanzahl von Ereignissen

Sie sollten nur die Webhook-Ereignisse abonnieren, die Sie benötigen. Dadurch wird die Belastung deines Servers reduziert. Weitere Informationen zum Abonnieren von Ereignissen findest du unter AUTOTITLE und AUTOTITLE.

Verwenden Sie ein Webhook-Geheimnis

Warnung

Um eine versehentliche Offenlegung vertraulicher Informationen zu vermeiden, gib keine vertraulichen Informationen in der URL der Nutzlast an. Dazu gehören deine eigenen API-Schlüssel und andere Authentifizierungsanmeldeinformationen. Verwenden Sie ein Webhook-Geheimnis, um sicherzustellen, dass Webhook-Lieferungen korrekt von GitHub gesendet und nicht manipuliert wurden. Weitere Informationen finden Sie unter AUTOTITLE.

Das Webhook-Geheimnis sollte aus einer zufälligen Textzeichenfolge mit hoher Entropie bestehen. Du solltest dein Webhook-Geheimnis sicher und so speichern, dass dein Server darauf zugreifen kann.

Verwenden der HTTPS- und SSL-Überprüfung

Du solltest sicherstellen, dass dein Server eine HTTPS-Verbindung verwendet. Standardmäßig überprüft GitHub SSL-Zertifikate beim Bereitstellen von Webhooks. GitHub empfiehlt, die SSL-Überprüfung aktiviert zu lassen.

Antworten Sie innerhalb von 30 Sekunden

Dein Server sollte mit einer 2XX-Antwort innerhalb von 30 Sekunden nach Erhalt einer Webhook-Übermittlung antworten. Wenn die Serverantwort länger dauert, beendet GitHub die Verbindung und kategorisiert die Zustellung als Fehler.

Um zeitnah zu antworten, solltest du eine Warteschlange einrichten, um Webhook-Nutzlasten asynchron zu verarbeiten. Dein Server kann antworten, wenn er den Webhook empfängt, und dann die Nutzlast im Hintergrund verarbeiten, ohne zukünftige Webhook-Zustellungen zu blockieren. Beispiel: Sie können Dienste wie Hookdeck oder Bibliotheken wie Resque (Ruby) verwenden RQ (Python) oder RabbitMQ (Java).

Überprüfen von Ereignistyp und Aktion vor der Verarbeitung des Ereignisses

Es gibt mehrere Webhook-Ereignistypen, von denen viele mehrere Aktionsarten haben können. GitHub fügt kontinuierlich neue Ereignistypen und neue Aktionen zu vorhandenen Ereignistypen hinzu. Deine Anwendung sollte den Ereignistyp und die Aktion von Webhook-Nutzdaten überprüfen, bevor die Nutzdaten verarbeitet werden. Um den Ereignistyp zu ermitteln, können Sie den X-GitHub-Event Anforderungsheader verwenden. Um den Aktionstyp zu ermitteln, kannst du den Schlüssel der obersten Ebene in den Ereignisnutzdaten verwenden.

Erneute Zustellung von fehlgeschlagenen Lieferungen

Wenn dein Server ausfällt, solltest du verpasste Webhooks erneut senden, sobald der Server wieder betriebsbereit ist. Weitere Informationen finden Sie unter AUTOTITLE.

Verwenden Sie den Header X-GitHub-Delivery

Bei einem Replay-Angriff fängt ein schlechter Angreifer eine Webhook-Zustellung ab und sendet die Zustellung erneut. Um vor Replay-Angriffen zu schützen, können Sie den Header X-GitHub-Delivery verwenden, um sicherzustellen, dass jede Übermittlung pro Ereignis eindeutig ist.

Hinweis

Wenn Sie eine erneute Lieferung anfordern, ist der Header X-GitHub-Delivery identisch mit der ursprünglichen Übermittlung.

Weiterführende Lektüre

  • AUTOTITEL
  • AUTOTITEL