Saltar al contenido
Underc0de /foro

¿Qué es CSRF (Cross-Site Request Forgery)?

$ man csrf

CSRF es una vulnerabilidad web que permite a un atacante hacer que el navegador de una víctima autenticada envíe peticiones no deseadas a un sitio en el que confía.

XSRFfalsificación de petición en sitios cruzadosSea Surfsession ridingone-click attack#seguridad-web#vulnerabilidades#desarrollo-web

Definición

CSRF (Cross-Site Request Forgery) es un ataque en el que un sitio malicioso induce al navegador de la víctima a enviar una petición a otra aplicación donde ya tiene la sesión iniciada. Como el navegador adjunta automáticamente las cookies de sesión, la aplicación vulnerable interpreta la petición como legítima y ejecuta la acción (cambiar el correo, transferir fondos, modificar la configuración). Puede explotarse mediante formularios ocultos que se envían solos (POST), imágenes o enlaces (GET) e incluso peticiones desde JavaScript cuando la configuración de CORS es laxa. Existe también el login CSRF, que obliga a la víctima a iniciar sesión con la cuenta del atacante.

Ejemplo

Un usuario está logueado en el panel de su banco y visita un foro que contiene una imagen como
Código: html
<img src="https://banco.example/transferir?destino=atacante&monto=1000">
. Si el banco acepta cambios de estado por GET y no valida tokens, el navegador envía la petición con la cookie de sesión y la transferencia se ejecuta sin que el usuario lo note.

Cómo protegerse

  • Usar tokens anti-CSRF únicos e impredecibles en cada formulario o acción sensible y validarlos en el servidor (la mayoría de los frameworks lo traen integrado).
  • Configurar las cookies de sesión con el atributo
    Código: text
    SameSite=Lax
    o
    Código: text
    Strict
    , además de
    Código: text
    Secure
    y
    Código: text
    HttpOnly
    .
  • No realizar cambios de estado mediante peticiones GET: reservarlas solo para lecturas.
  • Verificar las cabeceras
    Código: text
    Origin
    o
    Código: text
    Referer
    en las peticiones sensibles y no relajar CORS innecesariamente.
  • Pedir reautenticación o confirmación (contraseña, 2FA) para acciones críticas como cambiar el correo o la contraseña.

Para tener en cuenta

Un error común es creer que HTTPS o un buen login evitan el CSRF: el ataque funciona justamente porque la sesión es válida. Además, una vulnerabilidad XSS en el mismo sitio permite leer los tokens anti-CSRF y anular esta defensa.

Redactado con el asistente Underc0de IA. Actualizado el 11/11/2026. ¿Ves un error o querés sumar algo? Contanos en el foro.

Grupo de WhatsApp