Cyberpediapor Brain
ESDEENFR

El CSRF: la acción forzada sin que usted lo sepa

Un sitio trampa o un mensaje pueden hacer que su navegador actúe en su nombre en un servicio donde ha iniciado sesión. Mecanismo y defensas.

En 30 segundos

Dónde ocurre
En la mayoría de los servicios web sin protección anti-CSRF, cuando abre un enlace o una página trampa en el mismo navegador1.
Qué quiere el atacante
Provocar una acción que cambie algo, como una transferencia o un cambio de contraseña1.
El reflejo
Cerrar la sesión de un servicio cuando termine de usarlo2.
De dónde viene el fallo
De la aplicación, no del usuario2.

De qué se trata

El CSRF (Cross-Site Request Forgery) es un ataque que obliga a un usuario a ejecutar acciones no deseadas en una aplicación web donde ya está autenticado1. El atacante no necesita la contraseña de la víctima: hace actuar a su navegador.

Para un empleado, el escenario típico es sencillo. Hay un correo o un sitio bancario abierto en una pestaña. Un enlace recibido por correo electrónico o por mensajería instantánea lleva a otra página, y esa página lanza, en segundo plano, una petición al servicio que sigue con la sesión iniciada1.

Preguntas directas

¿El CSRF me roba la contraseña?

No, no como tal. El ataque toma prestadas la identidad y los permisos de la víctima para realizar una acción en su lugar1. Apunta a las acciones que cambian el estado del servicio, como modificar la dirección de correo o la contraseña, o comprar algo. Obligar a la víctima a consultar datos no beneficia al atacante, porque quien recibe la respuesta es la víctima, no él1.

¿Por qué el servicio obedece una petición que yo no quise hacer?

Porque no sabe distinguirla de una petición legítima. En la mayoría de los sitios, las peticiones del navegador incluyen automáticamente las credenciales asociadas al sitio, como la cookie de sesión1. Si el usuario está autenticado, el sitio no tiene forma de separar la petición falsificada de la real1. El CWE describe la debilidad así: la aplicación no verifica, o no puede verificar, que una petición haya sido enviada de forma voluntaria por el usuario que la emitió5.

¿Estoy protegido si el servicio usa HTTPS?

No. Según OWASP, HTTPS por sí solo no protege del CSRF, aunque sigue siendo un requisito previo para que las demás medidas sean fiables1.

¿El problema viene de mí o de la aplicación?

De la aplicación. Microsoft lo dice sin rodeos: las vulnerabilidades CSRF son, en esencia, un problema de la aplicación web, no del usuario final2. Los gestos del usuario solo limitan la exposición: cerrar la sesión al terminar y borrar con regularidad las cookies del navegador2.

1En la piel del atacante1 min

El atacante empieza por localizar una petición que modifica algo en un servicio y luego fabrica una dirección o un script que la reproduce con sus propios valores. OWASP pone el ejemplo de un banco ficticio: la petición legítima transfiere 100 dólares a un beneficiario, y el atacante se pone a sí mismo como beneficiario y aumenta el importe1.

Falta conseguir que la víctima cargue esa petición mientras tiene la sesión iniciada. Se citan dos métodos: un correo no solicitado con contenido HTML, o una trampa colocada en páginas que la víctima probablemente visite mientras usa su servicio en línea1.

El ataque también puede quedar almacenado en el propio sitio vulnerable, por ejemplo en un campo que acepta HTML. Entonces resulta más probable: la víctima consulta con más gusto una página del sitio que una página cualquiera de Internet, y además ya tiene allí la sesión iniciada1.

2Lo que ve en la pantalla1 min

A menudo, nada. El enlace trampa puede disfrazarse de enlace corriente, con un texto como «ver mis fotos». También puede adoptar la forma de una falsa imagen de tamaño cero: si aparece en un correo, la víctima no ve nada, pero el navegador envía igualmente la petición, sin ninguna señal visual de que la operación se ha realizado1.

Extracto
Ilustración neutralizada, no es una dirección real.
Enlace disfrazado: texto mostrado «Ver mis fotos», dirección oculta
hxxp://banque[.]exemple[.]invalid/virement?dest=[cuenta del atacante]&montant=[elevado]
Variante: imagen invisible en un correo, cargada sin hacer clic.

Si el servicio espera una petición de tipo POST, el atacante puede alojar en su sitio un formulario con campos ocultos. La víctima cree que hace otra cosa y pulsa, o bien un script lo envía automáticamente al cargar la página1. En ambos casos, la página que se muestra es corriente y la acción se desarrolla en otra parte.

3Bajo el capóEquipos de TI2 min

El mecanismo se basa en un comportamiento normal de los navegadores. Guardan las cookies emitidas por una aplicación, entre ellas las cookies de sesión de los usuarios autenticados, y envían todas las cookies de un dominio en cada petición, sea cual sea la forma en que esa petición nació en el navegador2. Las cookies no son lo único implicado: las autenticaciones de tipo Basic y Digest también son vulnerables, porque el navegador reenvía automáticamente las credenciales hasta el final de la sesión2.

Según OWASP, varias ideas de defensa no funcionan1:

  • una cookie secreta, ya que todas las cookies se envían con cada petición;
  • aceptar solo peticiones POST, ya que basta un formulario oculto para falsificar una;
  • las transacciones en varios pasos, mientras el atacante pueda prever cada paso;
  • la sola comprobación de la cabecera Referer, porque puede falsificarse y a veces falta por razones de privacidad.

Las protecciones recomendadas, en el lado de la aplicación, son las siguientes.

  • Comprobar primero si el framework ya ofrece una protección CSRF y usarla. Si no, añadir tokens anti-CSRF a todas las peticiones que modifican el estado y validarlos en el servidor3. Sin token, el atacante no puede fabricar una petición válida3.
  • Para el software sin estado, usar una cookie de doble envío, preferiblemente firmada3.
  • Establecer el atributo SameSite en las cookies de sesión3. Con el valor strict, el navegador no envía la cookie en las peticiones entre sitios, ni siquiera al seguir un enlace corriente. Con lax, la envía al seguir un enlace desde otro sitio, pero la retiene en los métodos expuestos al CSRF, como POST4. Con none, no se ofrece ninguna protección4.
  • Controlar el origen con las cabeceras estándar, en particular Sec-Fetch-Site, compatible con todos los grandes navegadores desde marzo de 20233.
  • No usar peticiones GET para operaciones que modifican el estado3.

Estas medidas tienen límites. SameSite=Lax deja pasar las peticiones GET de navegación de nivel superior: un punto de acceso que modifica el estado mediante GET sigue siendo vulnerable2. Los navegadores antiguos pueden no aplicar SameSite2. Y un fallo XSS puede eludir todas las protecciones anti-CSRF; el gusano Samy, por ejemplo, usó un XMLHttpRequest para obtener el token CSRF y falsificar peticiones13. El comportamiento por defecto de SameSite varía: en diciembre de 2024, lax era el valor por defecto de Chrome, Edge y Opera, pero de ninguna versión de Firefox ni de Safari, de ahí el consejo de fijarlo de forma explícita4.

4AutopsiasCasos reales1 min

2008: el exploit de uTorrent

OWASP cita, como ejemplo real de ataque CSRF contra una aplicación que funciona mediante peticiones GET, un exploit dirigido a uTorrent que data de 2008. Se utilizó a gran escala para descargar software malicioso1. La fuente no dice más: ni el número de víctimas ni el modo de difusión.

Fallos catalogados por el CWE (identificadores de 2004 a 2009)

El CWE-352 ofrece una lista seleccionada de ejemplos observados, que no es exhaustiva5. Varios se basan en una simple URL dentro de una etiqueta img: CVE-2004-1703 y CVE-2004-1995 permiten añadir cuentas de usuario, y CVE-2004-1842 obtener privilegios de administrador5. Otros afectan a la propia administración: CVE-2009-3520 permite modificar la contraseña del administrador, y CVE-2009-3759 cambiar contraseñas o apagar una máquina virtual desde una interfaz web5.

Ficha

Identificador
CP-053
Ala
1. Ataques y técnicas
Competencia Brain
Entender el hacking (understand_hacking)
Reflejo Brain
cr-018
Esquema
G3 · Corte anatómico
Idiomas
de, en, es, fr
Fuentes
5 fuentes verificadas el 3 de noviembre de 2026
Fuentes5 fuentes
  1. OWASP, «Cross Site Request Forgery (CSRF) | OWASP Foundation». https://community.owasp.org/attacks/csrf (consultado el 3 de noviembre de 2026)
  2. Microsoft, «Prevent Cross-Site Request Forgery (XSRF/CSRF) attacks in ASP.NET Core». https://learn.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-10.0 (consultado el 3 de noviembre de 2026)
  3. OWASP, «Cross-Site Request Forgery Prevention - OWASP Cheat Sheet Series». https://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.html (consultado el 3 de noviembre de 2026)
  4. OWASP, «SameSite | OWASP Foundation». https://community.owasp.org/SameSite (consultado el 3 de noviembre de 2026)
  5. MITRE, «CWE - CWE-352: Cross-Site Request Forgery (5.0)». https://cwe.mitre.org/data/definitions/352.html (consultado el 3 de noviembre de 2026)

Citar este artículo

Brain, «El CSRF: la acción forzada sin que usted lo sepa», Cyberpedia, 2026. https://startbrain.io/cyberpedia/es/articles/csrf-falsificacion-peticiones-entre-sitios/

BibTeX
@misc{brain_cp053_es_2026,
  author = {Brain},
  title = {El CSRF: la acción forzada sin que usted lo sepa},
  year = {2026},
  howpublished = {Cyberpedia},
  url = {https://startbrain.io/cyberpedia/es/articles/csrf-falsificacion-peticiones-entre-sitios/},
  note = {CC BY 4.0}
}