Riesgo de CSRF en webhook en n8n
Por qué los webhooks GET que realizan acciones son vulnerables a cross-site request forgery
¿Qué es este problema?
Los ataques Cross-Site Request Forgery (CSRF) pueden engañar a los usuarios para que activen tu webhook sin saberlo. Los webhooks GET que realizan operaciones de escritura (actualizaciones de base de datos, envío de emails, llamadas a APIs externas) son especialmente vulnerables ya que las solicitudes GET pueden activarse con simples enlaces o imágenes.
Patrones vulnerables:
•Webhook GET que actualiza registros de base de datos•Webhook GET que envía emails o notificaciones•Webhook GET que elimina o modifica datos•Webhook GET sin ninguna autenticación
¿Por qué es peligroso?
Acciones no autorizadas
Los atacantes pueden colocar enlaces en cualquier sitio web que activen tu workflow cuando los usuarios hacen clic.
Manipulación de datos
Los atacantes pueden modificar datos engañando a usuarios autenticados para que visiten páginas maliciosas.
Suplantación de usuario
Las acciones se realizan en el contexto de la sesión/identidad del usuario víctima.
Atribución difícil
Los ataques parecen acciones legítimas de usuario, dificultando el análisis forense.
Cómo solucionarlo
- 1
Usar POST para cambios de estado
Cambia los webhooks que realizan operaciones de escritura para usar método POST en lugar de GET.
- 2
Agregar autenticación
Requiere Basic Auth, Header Auth o validación de token en todos los webhooks.
- 3
Validar origen
Verifica el header Origin o Referer para asegurar que las solicitudes vengan de fuentes esperadas.
- 4
Usar tokens CSRF
Para formularios, incluye un token único que debe estar presente en el cuerpo de la solicitud.
Escanea tu workflow ahora
Sube tu archivo JSON de n8n y detecta webhooks GET que realizan operaciones de escritura.