Fonctionnement INTERNE des sessions PHP

Fonctionnement INTERNE des sessions PHP - PHP - Programmation

Marsh Posté le 23-06-2006 à 09:31:06    

Je voudrais trouver un lien ou une doc ou qqu qui m'explique très précisément comment fonctionne les sessions PHP.
 
Je ne cherche pas à comprendre comment UTILISER les sessions PHP, je fais ça depuis plusieurs années, et j'ai aucun problème là dessus.
 
Non, je cherche à savoir très précisément ce qui ce passe étape par étape au niveau du serveur, du client, de l'attribution d'un identifiant de session etc...
 
Le tout, pour finalement créer mon propre système de session.
 
Merci.

Reply

Marsh Posté le 23-06-2006 à 09:31:06   

Reply

Marsh Posté le 23-06-2006 à 11:17:26    

A priori tu peux ptet trouver de l'inspiration du côté des clients-serveurs en C/Unix, typiquement sur un cours/TD Unix de niveau DUT/Licence mis en ligne. En plus le code est très proche donc pas de problème pour comprendre. Tu vas retrouver l'utilisation des sockets pour écouter les éventuels clients entrants, le forkage, la gestion des fichiers pour les cookies de session.
Je peux po trop t'en dire plus comme ça, faudrait réfléchir...[:aras qui rit]

Reply

Marsh Posté le 23-06-2006 à 11:31:42    

Tu peux toujours regarder les sources [:petrus75]
 
Bon courage :D


---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 23-06-2006 à 12:27:43    

Ok merci, je vais regarder ça. :jap:

Reply

Marsh Posté le 23-06-2006 à 12:39:15    

Regarde sur ton serveur : les sessions sont stockées sous forme de fichier et côté client, c'est un cookie mémoire.

Reply

Marsh Posté le 23-06-2006 à 12:45:57    

gebruik a écrit :

Regarde sur ton serveur : les sessions sont stockées sous forme de fichier et côté client, c'est un cookie mémoire.


 
Vi, ça je sais déjà. EN fait, j'aurais voulu savoir un peu plus techniquement comment ça se passe. ;)
 
Les méthodes de détection de l'arrêt de la session, le temps d'inactivité, sa détection etc... Tout étape par étape. Mais j'ai déjà trouvé quelques liens, je les posterai au fur et à mesure pour ceux que ça intéresse. :)

Reply

Marsh Posté le 23-06-2006 à 13:57:04    

Salut.  
Bon forcément t'as pas choisi la simplicité ;)
Y a pas de réponse directe à ta question je pense, mais tu peux glaner quelques infos générales sur l'article Session Handling with PHP 4 et TRICK-OUT YOUR SESSION HANDLER chez Zend.
 
Après que ce soit manuels, articles, forums, newgroups... toujours le même refrain : "xxx ne fonctionne pas, pourquoi ?"
 
il te reste à aller mettre les mains dans le cambouis : php-5.1.4/ext/session/session.c devrais te donne pas mal de réponses, attention c'est du C à la sauce Zend API donc je te conseille de survoler Zend API (Hacking the Core of PHP) avant sinon bonjour la crise cardiaque.
 
Bon, j'imagine que t'as de quoi occuper ton weekend...  alors j'arrêtes là ;)

Reply

Marsh Posté le 23-06-2006 à 14:08:45    

merci. ;)

Reply

Marsh Posté le 23-06-2006 à 14:51:16    

salut tu as raison de t interesser au fonctionnement des sessions PHP.
 
L article posté par randiox est très bien.
 
Tu pourras par exemple eliminer le fameux probleme des session_id_regenerate() qui touchent tant de webmasters ;)
 
Bon courage.

Reply

Marsh Posté le 23-06-2006 à 14:55:50    

Ce qui est certain déjà, c'est que le système de session que je compte développer ne reposera pas sur une BDD (j'ai lu ton message précédent). ;)

Reply

Marsh Posté le 23-06-2006 à 14:55:50   

Reply

Marsh Posté le 23-06-2006 à 17:37:49    

Ah ok, ben dans ca cas "TRICK-OUT YOUR SESSION HANDLER" était bien pour toi... Juste par curiosité, que reproches-tu à la gestion des sessions par défaut de PHP ?

Message cité 1 fois
Message édité par randiox le 23-06-2006 à 17:38:06
Reply

Marsh Posté le 23-06-2006 à 17:42:26    

randiox a écrit :

Ah ok, ben dans ca cas "TRICK-OUT YOUR SESSION HANDLER" était bien pour toi... Juste par curiosité, que reproches-tu à la gestion des sessions par défaut de PHP ?


 
pas grand chose, si ce n'est de foutre l'id de session dans les URL par défaut à la première connection du client. Et les manip du style :  
 

Code :
  1. ini_set('session.use_trans_sid', false);
  2. ini_set('session.use_only_cookies', true);


 
Ne fonctionne pas chez bien des hébergeurs. :o
 
Ensuite, 98% des hacks de sites sont des injections SQL ou des exploits sur les sessions.
 
J'ai fini ma propre BDD en pur PHP, je m'attaque à mon propre système de session.
 
Dernière chose : j'aime bien tout comprendre, tout maitriser. Ca prend du temps, mais ensuite travailler avec ses propres outils en fait gagner. Sinon, ya aussi des hébergeurs comme free qui font chier avec des systèmes de sessions perso etc... etc...

Reply

Marsh Posté le 23-06-2006 à 20:39:23    

Yop :)
Effectivement faudrais pouvoir utiliser l'ini_set... si comme tu dis c'est bloqué par l'hébergement...
Par contre pour la gestion des sessions de l'hébergement Free, je ne te suit plus : t'est sûr qu'il gèrent ca différement ? Un rapide coup d'oeuil sur le phpinfo() me dit que l'extension classique est chargée mais j'en sais pas vraiment plus, j'ai plutôt l'habitude des vrais hébergements ;)
Bref coté session, apparament la plupart des attaques consistent à voler l'id de la session en cours... je pense pas que ce soit les sessions en elles-même qui soient un carnage pour la sécurité... enfin je crois. non ?

Reply

Marsh Posté le 24-06-2006 à 14:49:08    

Hermes le Messager a écrit :

pas grand chose, si ce n'est de foutre l'id de session dans les URL par défaut à la première connection du client. Et les manip du style :  
 

Code :
  1. ini_set('session.use_trans_sid', false);
  2. ini_set('session.use_only_cookies', true);


 
Ne fonctionne pas chez bien des hébergeurs. :o
 
Ensuite, 98% des hacks de sites sont des injections SQL ou des exploits sur les sessions.
 
J'ai fini ma propre BDD en pur PHP, je m'attaque à mon propre système de session.
 
Dernière chose : j'aime bien tout comprendre, tout maitriser. Ca prend du temps, mais ensuite travailler avec ses propres outils en fait gagner. Sinon, ya aussi des hébergeurs comme free qui font chier avec des systèmes de sessions perso etc... etc...


 
Yop chez free ya aucun probleme avec les sessions personnalisees.
 
Si tu travailles sur le FS cree un nouvo repertoire et place le dans ton tmp_path ( si tu as les autorisations ).
 
Chez free je crois qu il faut creer un repertoire /sessions à la racine de ton compte.
 
 
Que comptes tu faire exactement ?

Reply

Marsh Posté le 29-08-2007 à 08:37:09    

Comme tout les soirs minus,
tenter de conquérir le monde !!


---------------
Au royaume des aveugles, les borgnes sont rois xo0
Reply

Marsh Posté le 29-08-2007 à 09:14:05    

c'est quoi ce remontage de topic ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed