CSRF
CSRF (cross-site request forgery) es una vulnerabilidad donde el atacante engaña a un usuario conectado para que envíe sin saberlo una petición maliciosa al sitio objetivo.
Propósito
Evitar que los atacantes tomen prestada la sesión de la víctima para realizar operaciones no autorizadas.
Mecanismo
El atacante aloja una página maliciosa con <form> o <img> que envía una petición al sitio objetivo. El navegador adjunta cookies automáticamente y el servidor la confunde con el usuario. Defensas: tokens CSRF (tokens sincronizadores), cookies SameSite, comprobación de cabeceras Origin/Referer.
Casos de uso
- Transferencias bancarias falsificadas
- Cambio de configuración de cuentas
- Publicación de contenido o comentarios
- Operaciones de borrado de datos
Ejemplos
- entrada
<form action="bank.com/transfer" method="POST">OutputTransfer initiated riding on cookiesCross-site forgery
Errores comunes
- Relying solely on cookie authentication without a CSRF token
- Add a CSRF token or SameSite=Strict
Términos relacionados
XSS
XSS (cross-site scripting) es el ataque donde el atacante inyecta scripts maliciosos en una página que se ejecutan en el navegador de otros usuarios; tiene formas almacenadas, reflejadas y basadas en DOM. GLOSARIO
Cookie
Una cookie es un par clave-valor fijado por el servidor y almacenado por el navegador, enviado automáticamente con las peticiones del mismo origen para la gestión de sesiones y estado. GLOSARIO
SameSite Cookie
El atributo de cookie SameSite (Strict/Lax/None) controla si el navegador envía cookies en peticiones entre sitios, como defensa frente a CSRF. GLOSARIO
SQL Injection
La inyección SQL consiste en que atacantes empalmen fragmentos SQL maliciosos en una cadena de consulta para que la base de datos ejecute comandos no deseados. GLOSARIO