¿Cómo funciona X-CSRF-Token?

2

Después de leer esta pregunta , si mi entendimiento es correcto, el servidor envía el token CSRF hacia abajo como una cookie. A primera vista, eso parece anular el propósito del token, ya que todas las cookies son enviadas por el navegador, incluso si la solicitud no es del mismo origen.

Sin embargo, para escribirlo como un campo personalizado, primero debes leerlo, lo que puedes hacer solo si eres del mismo origen. Por lo tanto, la solicitud demuestra que proviene de un código que tiene "el derecho a leer" del contenedor de cookies, que es diferente del envío del navegador en su nombre.

Pero no estoy seguro de si lo entendí correctamente. ¿Es así como funciona?

    
pregunta sashoalm 20.03.2017 - 17:04
fuente

2 respuestas

2

Sí, eso es correcto.

La Same Origin Policy evita que otros dominios lean el valor real de la cookie .

En un ataque CSRF, el navegador envía cookies automáticamente. A pesar de que el atacante no puede leer estas cookies, todavía puede usarlas enviando una solicitud entre sitios.

Si requiere que todas las solicitudes con efectos secundarios tengan un valor verificado que se envíe fuera del mecanismo de cookies, esto mitiga el CSRF porque el atacante no tiene forma de saberlo.

    
respondido por el SilverlightFox 20.03.2017 - 17:18
fuente
4

La intención de enviar un encabezado personalizado como X-CSRF-Token y una cookie es que la técnica, denominada doble envío, mitigue el CSRF si se implementa correctamente. La forma en que funciona es que, si bien las cookies se enviarán automáticamente con una solicitud forzada como en el caso de CSRF, el encabezado personalizado no impedirá que un atacante le obligue a la víctima a ser atacada porque el servidor buscará ambas valores. El doble envío se utiliza en los casos en que la aplicación no desea realizar un seguimiento del estado de un token anti-CSRF.

    
respondido por el h4ckNinja 20.03.2017 - 17:31
fuente

Lea otras preguntas en las etiquetas