En informatique , un identifiant de session , un ID de session ou un jeton de session est un élément de données utilisé dans les communications réseau (souvent via HTTPS ) pour identifier une session , une série d'échanges de messages connexes. Les identifiants de session deviennent nécessaires dans les cas où l'infrastructure de communication utilise un protocole sans état tel que HTTP. Par exemple, un acheteur qui visite le site Web d'un vendeur souhaite collecter un certain nombre d'articles dans un panier virtuel, puis finaliser ses achats en se rendant sur la page de paiement du site. Cela implique généralement une communication continue où plusieurs pages Web sont demandées par le client et lui sont renvoyées par le serveur. Dans une telle situation, il est essentiel de suivre l'état actuel du panier de l'acheteur, et un ID de session est un moyen d'atteindre cet objectif.
Un identifiant de session est généralement attribué à un visiteur lors de sa première visite sur un site. Il diffère d'un identifiant d'utilisateur dans la mesure où les sessions sont généralement de courte durée (elles expirent après une période d'inactivité prédéfinie qui peut être de quelques minutes ou de quelques heures) et peuvent devenir invalides une fois qu'un certain objectif a été atteint (par exemple, une fois que l'acheteur a finalisé sa commande, il ne peut pas utiliser le même identifiant de session pour ajouter d'autres articles).
Les identifiants de session étant souvent utilisés pour identifier un utilisateur connecté à un site Web, ils peuvent être utilisés par un attaquant pour détourner la session et obtenir des privilèges potentiels. Un identifiant de session est généralement une chaîne générée de manière aléatoire pour diminuer la probabilité d'en obtenir un valide au moyen d'une recherche par force brute . De nombreux serveurs effectuent une vérification supplémentaire du client, au cas où l'attaquant aurait obtenu l'identifiant de session. Le verrouillage d'un identifiant de session sur l' adresse IP du client est une mesure simple et efficace tant que l'attaquant ne peut pas se connecter au serveur à partir de la même adresse, mais peut à l'inverse causer des problèmes à un client si celui-ci dispose de plusieurs itinéraires vers le serveur (par exemple des connexions Internet redondantes) et que l'adresse IP du client subit une traduction d'adresses réseau .
Voici quelques exemples de noms que certains langages de programmation utilisent pour nommer leur cookie : JSESSIONID ( Java EE ), PHPSESSID ( PHP ) et ASPSESSIONID ( Microsoft ASP ).