Suscribirse al número mínimo de eventos
Únicamente debes suscribirte a los eventos de webhook que necesites. Esto reducirá la cantidad de trabajo que debe hacer el servidor. Para obtener más información sobre cómo suscribirse a eventos, consulte AUTOTITLE y AUTOTITLE.
Uso de un secreto de webhook
Advertencia
Para evitar la exposición accidental de información confidencial, no incluyas información confidencial en la dirección URL de carga. Esto incluye tus propias claves de API y otras credenciales de autenticación. En su lugar, para validar que las entregas de webhook se enviaron mediante GitHub y no se han alterado, usa un secreto de webhook. Para más información, consulta AUTOTITLE.
El secreto de webhook debe ser una cadena aleatoria de texto con alta entropía. Debes almacenar de forma segura el secreto de webhook de forma que el servidor pueda acceder.
Uso de la comprobación de HTTPS y SSL
Debes asegurarte de que el servidor usa una conexión HTTPS. De forma predeterminada, GitHub comprobará los certificados SSL al entregar webhooks. En GitHub se recomienda dejar habilitada la comprobación de SSL.
Responder en 30 segundos
El servidor debe responder con una respuesta 2XX dentro de 30 segundos tras recibir una entrega de webhook. Si el servidor tarda más de eso en responder, GitHub finaliza la conexión y considera la entrega fallida.
Para responder a tiempo, es posible que desees configurar una cola para procesar cargas de webhook de forma asincrónica. El servidor puede responder cuando recibe el webhook y, a continuación, procesar la carga en segundo plano sin bloquear futuras entregas de webhook. Por ejemplo, Puede usar servicios como
Verifica el tipo de evento y de acción antes de procesar el evento
Hay varios tipos de eventos de webhook, y cada evento puede tener varios tipos de acción. GitHub continúa añadiendo nuevos tipos de eventos y nuevas acciones a los tipos de eventos existentes. La aplicación debe comprobar el tipo de evento y la acción de una carga de webhook antes de procesar la carga. Para determinar el tipo de evento, puede usar el encabezado de solicitud X-GitHub-Event. Para determinar el tipo de acción, puede usar la clave de nivel superior en la carga del evento.
Volver a entregar entregas fallidas
Si tu servidor deja de funcionar, debes reenviar los webhooks perdidos una vez que tu servidor vuelva a estar operativo. Para más información, consulta AUTOTITLE.
Usar el encabezado X-GitHub-Delivery
En un ataque de reinyección, un actor malintencionado intercepta la entrega de un webhook y la reenvía. Para protegerse frente a ataques de reproducción, puede usar el encabezado X-GitHub-Delivery para asegurarse de que cada entrega sea única por evento.
Nota:
Si solicita un reenvío, el encabezado X-GitHub-Delivery será el mismo que en la entrega original.
Información adicional
- AUTOTITLE
- AUTOTITLE