La entrega de webhook es una solicitud HTTP de otro sistema, no una prueba de que el remitente reclamado sea genuino. Verifique la firma del proveedor antes de permitir que la carga útil desencadene una acción.
Verifique la autenticidad antes de procesar
- Lea la especificación de firma actual del proveedor y verifique la firma con el cuerpo exacto sin formato que define.
- Utilice una biblioteca criptográfica mantenida y una comparación de tiempo constante para los bytes de firma.
- Rechace firmas no válidas y maneje protecciones de marca de tiempo o reproducción cuando el proveedor las admita.
Espere reintentos y eventos duplicados
Los proveedores pueden volver a intentarlo después de un tiempo de espera incluso cuando su solicitud ya haya completado el trabajo. Almacene un identificador de evento estable y haga que el controlador sea idempotente para que procesar el mismo evento dos veces no repita una acción irreversible.
Continúe firmando secretos en el servidor, rótelos a través del proceso documentado del proveedor y registre solo un identificador de evento y un resultado. Nunca incluya material secreto o toda la carga útil confidencial en un informe de errores.
