Identificateur de session
# Identificateur de session

En informatique, un identificateur de session (aussi appelé identifiant de session, ID session ou jeton de session ; en anglais, session identifier, session ID or session token) est une donnée qui est utilisée dans les communications réseau (souvent sur HTTP) pour identifier une session, une série d'échanges de messages connexes.

Les identificateurs de session deviennent nécessaires dans les cas où l'infrastructure de communication utilise un protocole sans état comme HTTP. Par exemple, un acheteur qui visite le site d'un vendeur souhaite placer un certain nombre d'articles dans un panier virtuel, puis finaliser les achats en allant sur la page de paiement du site. Cela implique généralement une communication au cours de laquelle plusieurs pages web sont demandées par le client et envoyées par le serveur du vendeur. Dans une telle situation, il est essentiel de garder une trace de l'état du panier de l'acheteur. Un identificateur de session est un moyen d'atteindre cet objectif.

Un identificateur de session est généralement attribué à un visiteur lors de sa première demande de page sur un site. Il est différent d'un identificateur d'utilisateur. Les identificateurs de session sont généralement de courte durée. Ils expirent après un temps d'inactivité prédéfini qui peut s'exprimer en minutes ou en heures. Ils expirent aussi après qu'un certain objectif a été atteint (par exemple, une fois que l'acheteur a finalisé sa commande. L'utilisateur ne peut pas utiliser le même identificateur de session pour faire une seconde commande.

Comme les identificateurs de session sont souvent utilisés pour identifier un utilisateur qui a ouvert une session sur un site web, ils peuvent être utilisés par un attaquant pour détourner une session et obtenir des privilèges. Un identificateur de session est souvent une longue chaîne de caractères générée de manière aléatoire pour diminuer la probabilité de trouver un identificateur valide au moyen d'une attaque par force brute. De nombreux serveurs effectuent des vérifications supplémentaires de l'identité de l'utilisateur pour prévenir les cas où un attaquant a obtenu l'identificateur de la session. Le verrouillage d'un identificateur de session sur l'adresse IP de l'utilisateur 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 inversement causer des problèmes pour un utilisateur si celui-ci utilise plusieurs routes vers le serveur (par exemple, différentes connexions Internet) et ou si l'adresse IP de l'utilisateur subit une traduction d'adresse réseau.

Un identificateur de session est un identificateur unique, généralement sous la forme d'un hash généré par une fonction de hachage. Le hash est généré et envoyé d'un serveur à un client pour identifier la session d'interaction actuelle. Le client stocke et renvoie habituellement l'identificateur en tant que cookie HTTP et / ou l'envoie en tant que paramètre dans les requêtes GET ou POST. La raison de l'utilisation des identificateurs de session est que le client doit uniquement gérer l'identificateur (une petite donnée qui contient peu d'information et présente donc un risque de sécurité minimal) - toutes les données de session sont stockées sur le serveur (habituellement dans une base de données à laquelle le client n'a pas d'accès direct) lié à cet identificateur.

