En el desarrollo web , un webhook es un método para ampliar o modificar el comportamiento de una página web o aplicación web mediante funciones de devolución de llamada personalizadas . Estas funciones pueden ser mantenidas, modificadas y gestionadas por usuarios externos que no necesariamente están afiliados al sitio web o aplicación de origen. En 2007, Jeff Lindsay acuñó el término webhook a partir del término de programación informática hook . [ 1 ]
Función
Los webhooks son "callbacks HTTP definidos por el usuario". [ 2 ] Generalmente se activan por algún evento, como enviar código a un repositorio, [ 3 ] una compra, un comentario publicado en un blog [ 4 ] y muchos otros casos de uso. [ 5 ] Cuando ocurre ese evento, el sitio de origen realiza una solicitud HTTP a la URL configurada para el webhook. Los usuarios pueden configurarlos para que los eventos en un sitio invoquen un comportamiento en otro.
Los usos comunes son activar compilaciones con sistemas de integración continua [ 6 ] o notificar a sistemas de seguimiento de errores . [ 7 ] Debido a que los webhooks usan HTTP, se pueden integrar en servicios web sin agregar nueva infraestructura. [ 8 ]
Autenticando la notificación del webhook
Cuando el cliente (el sitio web o la aplicación de origen) realiza una llamada webhook al servidor del usuario externo, la solicitud POST entrante debe autenticarse para evitar un ataque de suplantación de identidad y su marca de tiempo debe verificarse para evitar un ataque de repetición . [ 9 ] Se utilizan diferentes técnicas para autenticar al cliente:
- La autenticación básica HTTP se puede utilizar para autenticar al cliente. [ 10 ]
- El webhook puede incluir información sobre el tipo de evento del que se trata, así como una clave secreta compartida o una firma digital para verificar el webhook.
- Se puede incluir una firma HMAC como encabezado HTTP. GitHub, [ 11 ] Stripe [ 12 ] y Facebook [ 13 ] utilizan esta técnica.
- La autenticación TLS mutua se puede utilizar cuando se establece la conexión. El punto final (el servidor) puede entonces verificar el certificado del cliente. [ 14 ]
El remitente puede optar por mantener una lista constante de direcciones IP desde las que se enviarán las solicitudes. Si bien esta medida de seguridad por sí sola no es suficiente, resulta útil cuando el dispositivo receptor se encuentra detrás de un cortafuegos o NAT .
Véase también
Referencias
- ↑ Web hook para revolucionar la web , 3 de mayo de 2007, archivado del original el 30 de junio de 2018.
- ↑ "Webhooks" . Atlassian . Consultado el 24 de septiembre de 2019 .]
- ↑ Acerca de los webhooks - Ayuda de Github
- ↑ Webhooks de WordPress
- ↑ Casos de uso para webhooks
- ↑ Guía práctica de Jenkins GitHub Commit Hooks , archivada del original el 25/09/2015
- ↑ Alojamiento de proyectos de Google - Web Hooks posteriores a la confirmación
- ↑ ¿Qué son los WebHooks y cómo permiten una web en tiempo real?
- ↑ "Por qué verificar" . Svix . Svix Inc. Consultado el 12 de septiembre de 2021. Otra
posible vulnerabilidad de seguridad son los llamados ataques de repetición.
- ↑ "DocuSign Connect ahora incluye soporte para autenticación básica" . DocuSign . DocuSign, Inc. 16 de noviembre de 2017. Consultado el 15 de enero de 2020.
El servicio de notificaciones de Connect se ha actualizado para admitir el esquema de autenticación básica con los servidores Connect (oyentes) de los clientes.
- ↑ "Protegiendo tus webhooks" . Github . Github, Inc. Consultado el 12 de septiembre de 2021 .
- ↑ "Comprobación de firmas de webhook" . Stripe . Stripe, Inc. Consultado el 12 de mayo de 2019 .
- ↑ "Primeros pasos - API de Graph - Documentación - Facebook para desarrolladores" . Facebook . Facebook, Inc. Consultado el 12 de mayo de 2019 .
- ↑ "TLS mutuo: cosas que debes saber" . DocuSign . DocuSign, Inc. Consultado el 15 de enero de 2020. El TLS mutuo más el control de acceso del cliente permite que tu aplicación receptora garantice que el mensaje de notificación
de Connect fue enviado por DocuSign y que no fue modificado durante la transmisión.
Enlaces externos
- Trabajar con webhooks
- Protocolo de transferencia de hipertexto
- Eventos (informática)
- Tecnología web
- Detección y notificación de cambios