Quiero evitar ataques CSRF en mi API (Nodejs de la aplicación Express) Busqué en Google y YouTube pero no puedo encontrar la manera de hacerlo. En el tutorial de youtube, decía generar un token y enviarlo al lado del cliente, pero ¿no enviará el hacker una solicitud para obtener el token csrf y omitir la cosa csrf? Estoy confundido por favor ayuda.
Un ataque CSRF tradicional funciona colocando un formulario rellenado previamente en el sitio del atacante y enviándolo de origen cruzado. A continuación, utiliza las credenciales que se envían automáticamente con la solicitud para enviar los datos del atacante bajo la apariencia de la identidad del propietario del navegador.
Al colocar un token tanto en las cookies (o sesión) como en el formulario y verificar si coinciden, puede defenderse de esto. El atacante no puede simplemente enviar una solicitud para obtener el token CSRF porque:
Cuando se trata de un servicio web (y necesita que la API funcione en todos los orígenes), las cosas son diferentes. La defensa clave aquí es diseñar la API para que:
Content-Type: application/json ).… o ambos.