Repaso
English
Backend y APIsIntermedioAPI-09

En una app web de navegador, ¿dónde está más a salvo de un robo por XSS un token de sesión o autenticación?

Opciones

  1. En localStorage, donde los scripts de la página pueden leerlo
  2. En una variable JavaScript global dentro de la página
  3. En una cookie HttpOnly, Secure y SameSite (Opción correcta)
  4. En la query string de la URL de cada petición

Respuesta

En una cookie HttpOnly, Secure y SameSite

Por qué

Si un atacante inyecta JavaScript en tu página (XSS), ese script puede leer localStorage y las variables JS y enviarse tu token.

Una cookie HttpOnly no se puede leer desde JavaScript; el navegador simplemente la envía con las peticiones. Secure = solo por HTTPS; SameSite = no se envía en la mayoría de peticiones entre sitios.

Las cookies necesitan protección CSRF, que SameSite cubre en buena parte.

Recuerda

Token de autenticación en el navegador → cookie HttpOnly + Secure + SameSite.

Términos clave

Practica esta pregunta en Repaso