Repaso
English
Backend y APIsAvanzadoAPI-24

¿Cómo debe verificar tu servicio los webhooks que recibe de un proveedor?

Opciones

  1. Comprobando el header User-Agent que llega con la petición
  2. Verificando una firma HMAC del cuerpo crudo, más un timestamp (Opción correcta)
  3. Aceptando solo peticiones por una conexión HTTPS segura
  4. Confiando en cualquier petición a una URL secreta y difícil de adivinar

Respuesta

Verificando una firma HMAC sobre el cuerpo crudo con el secreto compartido, más un timestamp para evitar reenvíos

Por qué

Un webhook es el proveedor llamando a TU URL. Cualquiera en internet podría llamar a esa URL con datos falsos.

El proveedor firma cada payload con un secreto compartido (HMAC). Tú recalculas la firma sobre el cuerpo crudo y comparas (con hmac.compare_digest). Si coincide, los datos son genuinos.

Rechaza también los timestamps antiguos (mensajes reenviados) y gestiona los duplicados, porque los proveedores reintentan.

Recuerda

Webhooks: verifica la firma HMAC y rechaza timestamps antiguos.

Términos clave

Practica esta pregunta en Repaso