tokens CSRF en las cookies?

1

He visto que algunos sitios web usan tokens CSRF en el campo de cookies como

_csrf=123abc

y no como un encabezado separado o como parte de los datos POST. Mi pregunta es, cuando el sitio web de un atacante realiza una solicitud de CSRF con esas cookies al sitio web de la víctima, ¿por qué es útil el token de CSRF aquí? ¿El token CSRF no va con la cookie? Estoy confundido.

    
pregunta Knob 04.04.2018 - 22:55
fuente

1 respuesta

0

Sí, la cookie se enviará automáticamente con todas las solicitudes del navegador. Así que solo usar un token en una cookie anula todo el propósito de la defensa CSRF.

Entonces ... ¿Todos los sitios donde usted ve tokens CSRF en las cookies son vulnerables? No. Lo más probable es que el valor en la cookie también se incluya en otro lugar, por ejemplo. en un encabezado o campo de formulario oculto. Esto se conoce como el patrón de "doble envío de cookies", y tiene la ventaja de que no requiere estado del servidor. Como de costumbre, OWASP te cubrí:

  

Cuando un usuario se autentica en un sitio, el sitio debe generar un valor pseudoaleatorio (criptográficamente sólido) y configurarlo como una cookie en la máquina del usuario, separada de la ID de sesión. El sitio no tiene que guardar este valor de ninguna manera, evitando así el estado del lado del servidor. El sitio luego requiere que cada solicitud de transacción incluya este valor aleatorio como un valor de formulario oculto (u otro parámetro de solicitud). Un atacante de origen cruzado no puede leer los datos enviados desde el servidor ni modificar los valores de las cookies, según la política del mismo origen. Esto significa que mientras un atacante puede forzar a una víctima a enviar cualquier valor que desee con una solicitud CSRF maliciosa, el atacante no podrá modificar o leer el valor almacenado en la cookie. Dado que el valor de la cookie y el parámetro de solicitud o el valor del formulario deben ser los mismos, el atacante no podrá forzar con éxito el envío de una solicitud con el valor CSRF aleatorio.

    
respondido por el Anders 05.04.2018 - 11:21
fuente

Lea otras preguntas en las etiquetas