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.
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
Términos relacionados
- APIUna API define cómo un programa puede utilizar funciones o datos ofrecidos por otro programa.
- HTMLHTML describe la estructura y el significado del contenido web. Identifica elementos como encabezados, tablas y campos de entrada.
- Cross-site scripting (XSS)En el XSS, un contenido externo se convierte en código ejecutable en el navegador. Lo decisivo es cómo inserta la aplicación las entradas en sus páginas.
- Minimización de datosLa minimización limita los datos personales a lo adecuado, pertinente y necesario para una finalidad definida.
- Política de conservación de datosUna política de conservación define la finalidad, el inicio, la duración y el fin del almacenamiento. Los trabajos de borrado y las copias requieren medidas técnicas.
- Cifrado de sobreEl cifrado de sobre separa la clave de datos de la que la protege. El archivo cifrado y su clave de datos envuelta deben gestionarse juntos.
Su proyecto con ASES
Descríbanos su proyecto. Le responderemos con una primera valoración.