Skip to main content
Todos los Términos Glossary

Almacenamiento de sesión

Definition

El almacenamiento de sesión es una API de almacenamiento web que mantiene un área de almacenamiento separada para cada origen que está disponible durante la duración de la sesión de la página. A diferencia del almacenamiento local, los datos persisten solo mientras la ventana del navegador permanece abierta. Aunque es más temporal que el almacenamiento local, todavía requiere consideraciones de seguridad para los datos confidenciales almacenados.

Qué es Session Storage

Session Storage es una API de Web Storage casi idéntica a Local Storage en su forma: pares clave-valor de tipo cadena, síncronos y acotados a un origen, que se leen a través de window.sessionStorage. La diferencia está en la duración y el alcance. Los datos viven solo mientras dura la sesión de la página, lo que en la práctica significa una sola pestaña o ventana. Cerrar esa pestaña borra el almacén, y una segunda pestaña abierta al mismo sitio obtiene su propio Session Storage vacío e independiente en lugar de compartir los datos de la primera. Recargar o navegar dentro de la misma pestaña los conserva. Esto convierte a Session Storage en una opción natural para estado efímero por pestaña, como el progreso de un formulario de varios pasos o una marca de interfaz de un solo uso que no debe filtrarse entre pestañas.

Por qué importa para la seguridad

La duración por pestaña que se borra automáticamente reduce ligeramente la ventana de exposición en comparación con Local Storage, pero el riesgo de fondo no cambia: cualquier JavaScript que se ejecute en el origen puede leer toda el área de Session Storage, y no se puede marcar como HttpOnly. Una carga de cross-site scripting o un script de terceros malicioso que se ejecute en la misma pestaña puede volcar todas las claves mientras la pestaña esté abierta. Los valores se guardan sin cifrar y en texto plano. Así que, aunque un token de sesión en Session Storage desaparece cuando se cierra la pestaña, sigue siendo totalmente legible para un script hostil durante todo el tiempo que el usuario mantenga esa pestaña activa, lo que a menudo es toda la sesión de trabajo.

Cómo usarlo de forma segura

Prefiere Session Storage frente a Local Storage cuando los datos de verdad solo necesitan sobrevivir dentro de una pestaña, ya que la duración más corta reduce el radio de impacto de un valor robado. Aun así, no lo trates como una caja fuerte segura: guarda las credenciales de autenticación reales en cookies HttpOnly y Secure, y almacena aquí solo estado de trabajo no sensible. Valida y codifica cualquier valor que leas de vuelta antes de que toque el DOM para evitar el XSS basado en el DOM. Una Content Security Policy estricta reduce la posibilidad de que se ejecute script no confiable. El análisis a nivel de carga útil que hace cside de los scripts de terceros ayuda aquí al señalar un script de un proveedor que empieza a leer un almacenamiento del navegador que no tiene motivo para tocar.

Definición

¿Cuál es la diferencia entre Session Storage y Local Storage?

Ambos guardan pares clave-valor de tipo cadena por origen y son legibles por cualquier script de ese origen. Local Storage persiste hasta que se borra explícitamente y se comparte entre todas las pestañas del origen. Session Storage está aislado a una sola pestaña y se elimina cuando esa pestaña se cierra, lo que le da una duración más corta y acotada.

Definición

¿Persiste Session Storage al recargar la página?

Sí. Recargar la página o navegar dentro de la misma pestaña mantiene intacto Session Storage, porque la sesión de la página continúa. Solo se borra cuando la propia pestaña o ventana se cierra, o cuando el almacenamiento se borra por programa o por el usuario.

Got more questions

Talk to a security expert

We answer client-side security questions every day. Bring yours.

Reservar una demo