0Pricing
Cyber Security Academy · Lección

Cross-Site Request Forgery (CSRF)

Aprenda cómo los ataques CSRF falsifican solicitudes autenticadas y cómo los tokens CSRF y las cookies SameSite ofrecen protección.

Cross-Site Request Forgery (CSRF) es una lección gratuita de Cyber Security Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cyber Security Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué es CSRF?

Cross-Site Request Forgery (CSRF) engaña al navegador de un usuario autenticado para que realice solicitudes no autorizadas a una aplicación web. El navegador envía automáticamente las cookies con las solicitudes, por lo que el servidor no puede distinguir entre solicitudes legítimas y falsificadas sin medidas adicionales.

Cómo funciona CSRF

Escenario:

  1. La víctima ha iniciado sesión en bank.com (cookie de sesión en el navegador)
  2. La víctima visita la página del atacante con: <img src="https://bank.com/transfer?to=attacker&amount=1000">
  3. El navegador envía la solicitud GET con la cookie de bank.com adjunta
  4. El banco procesa la transferencia

CSRF con solicitudes POST

El CSRF mediante POST requiere un formulario:

<form action="https://bank.com/transfer" method="POST" id="f">
  <input name="to" value="attacker">
  <input name="amount" value="1000">
</form>
<script>document.getElementById("f").submit()</script>

Tokens CSRF

La principal defensa es un token CSRF: un valor aleatorio, secreto y específico de la sesión (o de la solicitud) que se inserta en los formularios. El servidor valida el token en cada solicitud que cambia el estado. Un atacante de otro dominio no puede leer el token (política del mismo origen).

Atributo de cookie SameSite

SameSite=Strict: la cookie no se envía con ninguna solicitud entre sitios. SameSite=Lax: la cookie se envía con navegaciones seguras de nivel superior (enlaces), pero no con solicitudes POST desde otros sitios. Los navegadores modernos utilizan Lax de forma predeterminada, lo que reduce significativamente el riesgo de CSRF.

Patrón de doble envío de cookies

Una alternativa al almacenamiento de tokens en el servidor: establezca una cookie CSRF aleatoria y exija que también se envíe como parámetro de la solicitud. Un atacante no puede leer la cookie (mismo origen), por lo que no puede hacerla coincidir en los datos del formulario.

Encabezados de solicitud personalizados

En las solicitudes AJAX, exigir un encabezado personalizado (por ejemplo, X-Requested-With: XMLHttpRequest) proporciona protección contra CSRF porque los navegadores impiden que los scripts entre orígenes establezcan encabezados arbitrarios (CORS lo impone).

Cuando los tokens CSRF no son suficientes

Los tokens CSRF fallan si:

  • Existe XSS: el atacante puede leer el token mediante JavaScript
  • El token se filtra en la URL (encabezado Referer)
  • El token es predecible o se reutiliza
  • CORS está configurado incorrectamente para permitir el origen del atacante

Pruebas de CSRF

Pasos de prueba:

  1. Identifique las solicitudes que cambian el estado (POST, PUT, DELETE)
  2. Elimine o modifique el token CSRF y vuelva a enviar la solicitud
  3. Diseñe un envío de formulario entre orígenes y compruebe si tiene éxito
  4. Verifique el atributo SameSite en las cookies de sesión

CSRF en las API

Las API REST que utilizan JSON suelen estar exentas de CSRF si:

  • Exigen Content-Type: application/json (los formularios HTML no pueden establecerlo)
  • Utilizan autenticación basada en tokens (encabezado Authorization, no cookies)

Pero las API que aceptan cookies aún deben implementar protección contra CSRF.

Panorama actual del CSRF

Con SameSite=Lax como valor predeterminado en Chrome, Firefox y Safari, muchos ataques CSRF tradicionales quedan bloqueados. Sin embargo, los ataques desde subdominios y ciertos patrones de navegación aún pueden eludir Lax. Combine SameSite con tokens CSRF para obtener una defensa sólida.

Comprobación rápida: CSRF

¿Cuál es la principal defensa contra los ataques CSRF en las aplicaciones web?

Repaso de la lección

CSRF aprovecha el envío automático de cookies por parte del navegador para falsificar solicitudes autenticadas desde sitios maliciosos. Defensa principal: tokens CSRF validados en el servidor. Defensa secundaria: atributo de cookie SameSite=Strict/Lax. Las API que utilizan autenticación mediante tokens en encabezados (no cookies) son naturalmente resistentes al CSRF. Combine las defensas; XSS puede eludir los tokens CSRF si está presente.

Preguntas frecuentes

¿La lección «Cross-Site Request Forgery (CSRF)» es gratis?

Sí — el texto completo de «Cross-Site Request Forgery (CSRF)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cyber Security Academy, actualiza a CoddyKit PRO. El curso de Cyber Security Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Cross-Site Request Forgery (CSRF)»?

Aprenda cómo los ataques CSRF falsifican solicitudes autenticadas y cómo los tokens CSRF y las cookies SameSite ofrecen protección. Practicas Cyber Security Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cyber Security Academy?

No se requiere experiencia previa. Cyber Security Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Cross-Site Request Forgery (CSRF)»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cyber Security Academy?

Sí. Cada lección de Cyber Security Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Inyección SQL: cómo y por qué funciona
  2. Cross-Site Scripting (XSS)
  3. Cross-Site Request Forgery (CSRF)
  4. Configuración incorrecta de seguridad y servicios expuestos
← Volver a Cyber Security Academy