Utilizando el patrón de token del sincronizador, ¿debería asegurarse de que el token CSRF solo se comunique a través de HTTPS?

2

En pocas palabras, los tokens CSRF se pueden eliminar de las respuestas del servidor a menos que la solicitud / respuesta se transmita mediante cifrado. ¿Es esto una preocupación suficiente para preocuparse, o es razonable permitir que el token CSRF se transmita a través de texto sin formato?

En nuestro caso, el marco que utilizamos proporciona exactamente un token CSRF por sesión y nuestra aplicación tiene formularios HTTP y HTTPS para proteger. Mi preocupación es que un atacante podría detectar el token CSRF mientras la víctima está visitando una página HTTP con un formulario y luego incitar a la víctima a visitar una página HTTPS maliciosa que publica en un controlador de solicitudes HTTPS más sensible en nuestra aplicación con la información correcta. El token CSRF (colocado allí por el atacante que lo olfateó anteriormente).

    
pregunta user1483512 16.04.2014 - 20:44
fuente

2 respuestas

1

Correcto, su token debe mantenerse en secreto, o un atacante puede duplicar el token. Es más difícil que tomar prestada la cookie de sesión, pero el principio básico es el mismo.

Si genera un token CSRF único para cada solicitud & Si se utiliza solo una vez y siempre que se solicite, puede asegurarse de que el token no se reproduzca. Incluso entonces es posible que el atacante obtenga el token & Úsalo antes que el usuario real.

En última instancia, necesitarás usar HTTPS para poder confiar completamente en el token CSRF.

    
respondido por el Shawn C 17.04.2014 - 02:12
fuente
3

Si un atacante puede olfatear el token CSRF, también puede olfatear la cookie de sesión y no habría ninguna razón para que él lance un ataque CSRF. ¿O me estoy perdiendo algo?

    
respondido por el Kotzu 16.04.2014 - 23:33
fuente

Lea otras preguntas en las etiquetas