Por lo que he aprendido hasta ahora, el propósito de los tokens es evitar que un atacante falsifique el envío de un formulario.
Por ejemplo, si un sitio web tenía un formulario que ingresaba artículos agregados a su carrito de compras, y un atacante podría enviar spam a su carrito de compras con artículos que no desea.
Esto tiene sentido porque podría haber múltiples entradas válidas para el formulario de carrito de compras, todo lo que el atacante tendría que hacer es conocer un artículo que el sitio web está vendiendo.
Entiendo cómo funcionan los tokens y agrego seguridad en este caso, porque aseguran que el usuario haya completado y presionado el botón "Enviar" del formulario para cada artículo agregado al carrito.
Sin embargo, ¿los tokens agregan seguridad a un formulario de inicio de sesión de usuario, que requiere un nombre de usuario y contraseña?
Dado que el nombre de usuario y la contraseña son muy únicos, el atacante tendría que saber ambos para que la falsificación de inicio de sesión funcione (incluso si no tenía la configuración de tokens), y si un atacante ya lo sabía, podría iniciar sesión en el sitio web él mismo. Sin mencionar que un ataque CSRF que hace que el usuario inicie sesión no tendría ningún propósito práctico de todos modos.
¿Es correcto mi comprensión de los ataques y tokens CSRF? ¿Y son inútiles para los formularios de inicio de sesión de usuario como sospecho?