Saltar al contenido

Falsificación de solicitudes entre sitios (CSRF)

CSRF aprovecha una sesión iniciada para una solicitud no deseada. La cookie de sesión no demuestra por sí sola que la persona quisiera realizar la acción.

También conocido comoCSRFXSRF
Seguridad informática

La falsificación de solicitudes entre sitios, CSRF o XSRF, es un ataque en el que otro sitio induce al navegador a enviar una solicitud no deseada a una aplicación objetivo. Si el navegador incluye automáticamente credenciales válidas y falta una protección adecuada, la aplicación puede interpretar la solicitud como una instrucción de la persona que ha iniciado sesión.

Un cambio en un portal de proyectos

Un portal de proyectos ficticio permite cambiar la dirección de notificaciones en el campo notificationEmail. Una persona tiene allí una sesión iniciada y visita además otra página. Esa página intenta activar el cambio. El envío de la cookie de sesión depende, entre otros factores, de las reglas de cookies del navegador.

Comprobar una cookie de sesión válida establece a qué sesión pertenece la solicitud. No demuestra que la persona quisiera ese cambio de dirección. Utilizar solo POST tampoco impide el ataque.

Proteger solicitudes que cambian el estado

Para un formulario, el framework puede proporcionar un token CSRF impredecible vinculado a la sesión. El servidor comprueba ese valor adicional antes del cambio. La protección debe utilizarse efectivamente en las solicitudes correspondientes.

MDN también describe controles basados en metadatos Fetch, es decir, información del navegador sobre el contexto de la solicitud, y otros métodos adecuados al tipo de solicitud. El atributo de cookie SameSite es una capa adicional. Un mismo sitio y un mismo origen (protocolo, nombre de host y puerto) no son equivalentes; distintos subdominios pueden pertenecer al mismo sitio. Un token CSRF válido tampoco sustituye a comprobar si la persona que ha iniciado sesión tiene permiso para cambiar la dirección.

Fuentes