Obtención del token CSRF

2

Como he leído acerca de los tokens CSRF, el servidor generalmente incrusta el token CSRF en el formulario en una etiqueta oculta. De esa manera, al enviar el formulario como una solicitud POST, el token CSRF se puede enviar y recibir en el servidor para la autenticación.

Por lo tanto, mi idea es que una secuencia de comandos malintencionada solicite el mismo formulario (con el token CSRF incorporado) y use el token CSRF para realizar un ataque.

¿Cómo podemos proteger la aplicación si el caso anterior es posible? ¿Me estoy perdiendo algo? Gracias de antemano chicos!

EDITAR / ACTUALIZAR:

Bien, digamos que tiene un sitio web bancario abierto en su navegador con un formulario con el token CSRF, luego abre un sitio malicioso en otra pestaña. El sitio malicioso carga y realiza una solicitud al servidor para obtener el formulario (con el token CSRF incorporado), luego lo analiza y usa el token CSRF para realizar un ataque. ¿Es eso posible?

    
pregunta limar 07.06.2018 - 11:22
fuente

1 respuesta

2

Este caso se evita con la Política del mismo origen .

  

"Bajo la política, un navegador web permite los scripts contenidos en una primera   página web para acceder a los datos en una segunda página web, pero solo si ambos   Las páginas tienen el mismo origen. Un origen se define como una combinación de   Esquema de URI, nombre de host y número de puerto. Esta política impide una   script malicioso en una página para obtener acceso a datos confidenciales   en otra página web a través del Modelo de objeto de documento de esa página ".

En el contexto de su ejemplo, no se permite que el sitio malicioso realice una solicitud en el sitio web bancario, y un intento de hacerlo dará como resultado un mensaje similar al siguiente en la consola del navegador (tomado de Chrome):

  

Error al cargar XXX: la redirección de 'XXX' a 'XXX' ha sido bloqueada por   Política CORS: No hay ningún encabezado 'Access-Control-Allow-Origin' presente en el   recurso solicitado Por lo tanto, no se permite el acceso al origen 'nulo'.

    
respondido por el Dan Chivers 23.07.2018 - 18:23
fuente

Lea otras preguntas en las etiquetas