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