En informática , un identificador de sesión , ID de sesión o token de sesión es un dato que se utiliza en las comunicaciones de red (a menudo a través de HTTPS ) para identificar una sesión , una serie de intercambios de mensajes relacionados. Los identificadores de sesión se vuelven necesarios en los casos en que la infraestructura de comunicaciones utiliza un protocolo sin estado como HTTP. Por ejemplo, un comprador que visita el sitio web de un vendedor desea recopilar una serie de artículos en un carrito de compras virtual y luego finalizar la compra yendo a la página de pago del sitio. Esto generalmente implica una comunicación continua en la que el cliente solicita varias páginas web y el servidor las envía de vuelta. En tal situación, es vital realizar un seguimiento del estado actual del carrito del comprador, y un ID de sesión es una forma de lograr ese objetivo.
Por lo general, se le otorga un ID de sesión a un visitante en su primera visita a un sitio. Se diferencia de un ID de usuario en que las sesiones suelen tener una vida útil breve (expiran después de un tiempo de inactividad predeterminado que puede ser de minutos u horas) y pueden volverse inválidas después de que se haya alcanzado un objetivo determinado (por ejemplo, una vez que el comprador ha finalizado su pedido, no puede usar el mismo ID de sesión para agregar más artículos).
Como los identificadores de sesión se utilizan a menudo para identificar a un usuario que ha iniciado sesión en un sitio web, un atacante puede utilizarlos para secuestrar la sesión y obtener posibles privilegios. Un identificador de sesión suele ser una cadena generada aleatoriamente para disminuir la probabilidad de obtener uno válido mediante una búsqueda de fuerza bruta . Muchos servidores realizan una verificación adicional del cliente, en caso de que el atacante haya obtenido el identificador de sesión. Bloquear un identificador de sesión a la dirección IP del cliente es una medida sencilla y eficaz siempre que el atacante no pueda conectarse al servidor desde la misma dirección, pero, a la inversa, puede causar problemas a un cliente si el cliente tiene varias rutas al servidor (por ejemplo, conexiones a Internet redundantes) y la dirección IP del cliente se somete a la Traducción de direcciones de red .
Algunos ejemplos de los nombres que utilizan algunos lenguajes de programación al nombrar sus cookies incluyen JSESSIONID ( Java EE ), PHPSESSID ( PHP ) y ASPSESSIONID ( Microsoft ASP ).