Votre question

Explication sessions php

Tags :
  • Serveur
  • Programmation
Dernière réponse : dans Programmation
12 Mai 2009 12:05:35

salut, je voudrais avoir une petite explication sur les sessions php.
En effet sur des sites je lis "les sessions contrairement aux cookies sont stockées sur le serveur et non sur le poste client".
sur d'autres, "stockées sur le serveur et dans un cookie sur le poste client"

donc ma question c'est qui croire?
je sais que sur le serveur il y a des fichiers textes qui contiennent les données des sessions mais sur le client?
si elles sont stockés aux deux endroits, pouvez vous m'expliquer à quoi cela sert de stocker les sessions chez le client ET sur le serveur?

merci de vos éclaircissements.

Autres pages sur : explication sessions php

12 Mai 2009 16:45:11

Si tu regardes les en-tête HTTP, avec l'extension livehttpheader pour Firefox par exemple. Tu verras bien ce qui circule au niveau des cookies.

Dans le cas des sessions, il y a bien un cookie, qui périme lorsque le navigateur est fermé. Ce cookie est le plus souvent une chaine de 32 caractères hexadécimal. C'est en fait une clé unique pour le serveur.

Le visiteur arrive avec un cookie de session (souvent son nom est SESSID), php, va alors voir si il possède des données sur le serveur avec comme clé cette valeur. Si oui, alors il les charges et tu peux en disposer dans ton code via $_SESSION.

Et niveau sécurité, tu peux te rendre compte d'un problème, en imaginant que Tom's Guide possède une faille de sécurité, si tu arrives à obtenir mon cookie de session (en sniffant un réseau par exemple) alors tu peux passer admin du site ... Mais c'est bien sur bien plus difficile que de stocker très clairement dans le cookie les données ... Dans l'idéal, il faut donc regénerer la valeur de cookie de session régulièrement (il y a des fonctions php pour cela), mais peu de site le font.

Pour info, les données sont en effet stocké coté serveur, par défaut je crois qu'il le fait dans des fichiers dans /tmp/, il faut aller voir dans le php.ini. On peut également stocker les sessions en base de donnée (pratique si tu as plusieurs serveurs et que tu veux partager les sessions) ou sur du memcache. Bref, on fait un peu ce qu'on veut avec.
m
0
l
12 Mai 2009 16:57:18

ok merci de tes explications je vais chercher cette faille dans tom's guide :) 
m
0
l
12 Mai 2009 17:08:24

Je doute qu'elle y soit ;) 
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS