La principal razón de seguridad para evitar las cookies sería prevenir CSRF , que es Un gol válido. Las cookies no estaban bien pensadas desde el punto de vista de la seguridad. Por otro lado, hay enfoques bien establecidos para evitando CSRF, por lo que no es Una técnica muy valiosa.
Desde el punto de vista de la privacidad, las cookies (especialmente las cookies de terceros) son peligrosas. Por esta razón, algunos usuarios y / o navegadores los bloquean, lo que puede proporcionar a los desarrolladores una razón funcional para usar otra cosa.
Sin embargo, incluso para una aplicación de una sola página (SPA), es probable que desee conservar su token de sesión. La forma estándar de hacer esto desde JS es usar el almacenamiento local (ya sea almacenamiento persistente o de sesión), que es básicamente una manera de almacenar las variables de JS para un sitio en particular a través de las visitas de los usuarios, o al menos la carga de páginas dentro de una sesión determinada. Todos los navegadores modernos admiten almacenamiento local.
El principal inconveniente de la seguridad del almacenamiento local (o cualquier otra forma de realizar la administración programática de sesiones en el cliente, en lugar de confiar en el comportamiento automático de las cookies), es que un atacante que obtiene XSS (secuencias de comandos entre sitios) dentro de su La aplicación web puede robar el token y secuestrar la sesión para hacerse pasar por la víctima, incluso después de que la víctima cierre el navegador (por el contrario, la cookie de sesión típica se marca como httponly
, lo que evita que JS lo lea y restringe el secuestro de la sesión a solo como siempre que la víctima deje abierta la aplicación web).