Tengo una aplicación de una sola página, que es básicamente un consumidor para mi API que se autentica utilizando el encabezado Authorization
. Ahora, porque hago la representación del lado del servidor, necesito autenticar en la solicitud inicial, que significa Necesito usar cookies para almacenar el token de autenticación.
Ahora que entiendo, CSRF funciona así en un sitio web típico:
- Encuentre un punto final que haga algo dañino como
/delete-account
que se autentique con cookies - En
example.com
, ponga un<img href="http://mywebsite.com/delete-account">
(o lo que sea para una solicitud POST)
Sin embargo, para mí, parece que es imposible que ocurran ataques CSRF en el caso de un SPA, incluso si el token de autenticación se envía como una cookie. El procedimiento normal es un poco como:
- El usuario visita una página, por ejemplo,
/account
- El servidor representa la página según el usuario autenticado (dada la cookie de autenticación)
- Se devuelve la página web
- Ahora, si el usuario desea eliminar su cuenta, puede presionar el botón, que enviaría una solicitud a la API que autentica las solicitudes solo por el encabezado
Authorization
Ahora en un ataque CSRF:
-
<img href="/account">
- El servidor procesa y devuelve la página web
- Umm, ¿no pasa nada?
Quiero decir que no puedo pensar en una forma en que pueda ser vulnerable a CSRF en esta situación, incluso si uso cookies para la autenticación, y hasta donde entiendo, los ataques CSRF no pueden eliminar datos de las páginas web. por lo tanto, la devolución de datos confidenciales no debería importar, siempre que no desencadene una acción.
Entonces, mi pregunta es: ¿está bien no implementar ningún tipo de protección CSRF en este caso? Tengo tanto miedo de tener un problema de seguridad al respecto.