kk... alors petite explication.
Une session, est un concept plutôt qu'un truc vraiment concret. Ça consiste à associer un identifiant à un internaute, puis d'utiliser cet identifiant pour stocker et retrouver les données de l'internaute.
L'identifiant doit être connu à un moment donné à la fois du navigateur et du serveur. Il y a plusieurs méthodes pour transbahuter un identifiant sur le net, et notamment: les paramètres GET, POST, et les cookies. Ces derniers sont le plus souvent utilisés dans les sessions car ils peuvent être gardés par le navigateur pendant une période déterminée, indépendamment de ce que le navigateur est ouvert ou fermé.
Il y a différents types d'identifiants, pouvant être les simple pseudonymes des l'internautes, un numéro d'ordre, ou à des fins de sécurité un numéro aléatoire qu'il est donc difficile de retrouver.
A un identifiant donné, sont associées des données. Ces données peuvent être transbahutées par le net via des paramètres ou des cookies. Celà n'étant pas très sécurisé et nécessitant plus de bande passante. Les méta-informations concernant un identifiant sont donc très souvent stockés sur le serveur, puis envoyés parcimonieusement vers le navigateur lorsque c'est nécessaire, souvent après un traitement préalable du serveur. Les deux façon principales pour stocker ces méta-informations sont: les fichiers et les bases de données. Les sessions PHP utilisent par défaut des fichiers dans lesquels ils sérializent (transforment en chaîne de caractère) les données. PHP est flexible pour pouvoir accepter de stocker dans une base de donnée, mais le code de stockage est laissé au programmeur.
Avec un système de session sécurisé, il n'y a donc que l'identifiant qui est transbahuté sur le net de façon claire. De plus cet identifiant a une durée de vie limitée afin qu'une tentative de deviner l'identifiant aléatoire par essais succesifs soit quasi impossible.
Pour rendre le système encore plus sûr afin qu'un numéro de session ne soit pas volé par un sniffeur réseau à l'écoute de la connexion, on utilise le protocole crypté HTTPS, au moins lorsque l'identifiant est créé / recréé, c'est à dire en général sur la page de login ou la page d'accueil. Parmi les information de session peuvent être enregistré l'adresse IP de l'ordinateur client, qui est un numéro d'identification unique sur internet, et qui permet de vérifier à chaque page que l'identifiant a bien été créé pour la même machine cliente qui requiert cette page. Les tentatives de fraude sont renvoyées vers la page de login, l'adresse IP peut être répertoriée et bloquée, le login de l'utilisateur invalidé.
PS: j'ai vraiment du temps à perdre aujourd'hui.