[PHP] Gestion des sessions

Gestion des sessions [PHP] - PHP - Programmation

Marsh Posté le 13-06-2002 à 14:48:48    

je cherche à ne plus utiliser de cookie pour l'identification des utilisateurs de mon site. Pour remplacer les cookies, je peux utiliser des identifiants de session, que je passe dans l'URL. Le pb, c'est que ça fait pas beau, et je me demande si au niveau de la sécurité c'est vraiment bien...
Alors, je vous demande comment je pourrais faire pour gérer les sessions, sans utiliser de cookie, et en essayant de ne pas avoir de sessionID dans l'URL


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-06-2002 à 14:48:48   

Reply

Marsh Posté le 13-06-2002 à 17:16:11    

Alors voilà, g dompté les sessions y'a pas si longtemps et avec cette méthode y'a rien dans l'url sinon c pas trop de la sécurité quoi.
Au tout début de la page tu mets:
<? session_start(); //Dit qu'on va se servir des sessions et spécifie une ID de session
 
Après tu vérifies dans ta table si les valeurs sont bonnes et pour garantir l'accès tu fais:
session_register("variable" ); //déclare une variable de session appelée "variable" dans le registre de session
 
puis tu lui affectes une valeur:
$variable="ratapouak"; //ou ce que tu veux
 
Ca c'était la page d'accès. Now, pour tester si l'accès est valide, tu fais sur chaque page:
toujours pareil: session_start(); en haut
pis après tu fais un  
if ($variable=="ratapouak" )
{
là c'est bon t'as bon
}
else
{
vas-y kes tu fait dégage et tout
}
 
Enfin voilà koi ça marche très bien, c zoli.
J'espère que je t aidé, sinon ben ce fut pourtant avec beaucoup d'ardeur que g tenté de le faire.
Fin de transmission.

Reply

Marsh Posté le 13-06-2002 à 17:53:16    

ok, super, ça m'a l'air... un poil trop simple...
comment on gère la durée des sessions ?
ça marche sur n'importe quel verison de PHP ?
Sur n'importe kel serveur ?
voilà voilà pour les questions de chieur !


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-06-2002 à 18:27:11    

Cela marche avec n'importe quels serveurs qui à installer PHP4
 
Pour la durée il me semble qu'elle est déterminée par defaut lors de la configuration du serveur donc tu ne peux pas la changer sur des serveurs mutualisés

Reply

Marsh Posté le 13-06-2002 à 18:32:11    

Petite question !
 
Les sessions permettent-elles de se passer totalement des cookies ?
Ne faut-il pas au moins sauvegarder le session ID d'une connexion à l'autre dans un cookie ?
 
Sinon, la session va assigner un nouvel ID à chaque connexion et les informations ne seront pas sauvées ...


---------------
Lunetto-believer !
Reply

Marsh Posté le 13-06-2002 à 18:49:34    

ok, donc je suis à moitié baisé (passer moi l'expression... :D ) pour la durée, à moins bien sûr d'avoir une variable de session "expirationTime" et je le teste, s'il est dépassé, alors je destroy la session ! Pb réglé donc.
 
Pour répondre à yannick_frere, oui, tu peux te débarasser totalement des cookies (c'est mon but ultime), mais les infos ne sont pas sauvées entre 2 sessions dans ce cas ! ce qu'il faut, c'est stocker les infos sur l'utilisateur dans une table de ta BD, la session ne contient que l'id de l'utilisateur logué ! et on récupère les infos dans la table, surtout pas dans les cookies ou autre élément perissable


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-06-2002 à 19:56:16    

Oui mais alors, c'est "semi-automatique" : l'avantage du cookie, c'est qu'il envoie ses infos au site automatiquement ...
 
Avec ton système, je suppose que l'utilisateur doit entrer son username/pass à chaque fois qu'il se connecte sur ton site ...
 
(enfin, j'suis débutant hein, mais il me semble que c'est ça ^^)


---------------
Lunetto-believer !
Reply

Marsh Posté le 13-06-2002 à 20:01:40    

je voudrais pas vous embêter, mais les sessions utilisent les cookies... regardez dans votre /temporary_internet_files/
 
session_start() crée un numéro un unique si il n'existe pas déjà et l'envoie par cookie chez le client.  Si celui-ci refuse, il le passe dans l'url.


---------------
...oups kernel error...
Reply

Marsh Posté le 13-06-2002 à 20:04:12    

T'es sur que c'est automatiquement fait par session_start ??
 
Sur phpdebutant.com (je crois), ils expliquent ta méthodes, mais ils la font "manuellement" ...
 
En tout cas, ce serait vraiment chouette que ce soit automatique ! Quelle simplicité !


---------------
Lunetto-believer !
Reply

Marsh Posté le 13-06-2002 à 20:34:00    

oui : http://www.php.net/manual/en/funct [...] -start.php

Citation :

session_start() creates a session (or resumes the current one [/g]based on the session id being passed via a GET variable or a cookie[/g]).


 
et je peux même te dire que c hyper embettant qd tu utilises du javascript pour écrire tes liens, pcq si la personne n'a pas activé ses cookies, chaque fois qu'il vois un <A HREF=, il tape "?PHP_SID=num_session"...  
 
donc  
document.write('A HREF=\"http://monsite.com'+arg1+'\">lien</a> );
devient :
document.write('A HREF="?PHP-SID=num_session"\"http://monsite.com'+arg1+'\">lien</a> );
 
ils auraient pas pu prévoir un paramètre qui empeche ça ??? grrr :(


Message édité par ethernal le 13-06-2002 à 20:38:27

---------------
...oups kernel error...
Reply

Marsh Posté le 13-06-2002 à 20:34:00   

Reply

Marsh Posté le 13-06-2002 à 20:44:02    

les sessions, soit ça utilise les cookies et à ce moment là autant utiliser directement des cookies
soit ça utilise un paramètre dans l'url (PHPSESSID=...) et là c trop la merde niveau sécurité.
 
moralité : session = gros caca dans bcp de cas

Reply

Marsh Posté le 13-06-2002 à 22:48:40    

bon, alors je viens de faire des petits tests... et c'est assez bizarre. En effet, j'ai fait exprès de blocker les cookies avec mon navigateur et il a pas écrit de cookie et il pas mis de trucs en plus dans l'URL... mais à un moment en testant en local sur mon PC, et bien ça a mis l'id de session dans l'URL... je sais pas pkoi. En tout cas, ct juste sur le premier coup !


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-06-2002 à 22:55:03    

ah ouais ben non, je me suis gouré, j'avais pas bloqué mes cookies comme il faut, j'ai viré les cookies et ça a mis l'id de session dans l'URL  :cry:  
Bref, on sait pas comment faire pour ne pas utiliser les cookie et ne pas avoir l'identifiant de session dans l'URL.
En gros, je voudrais que l'id de session passe dans la requête HTTP mais pas dans l'URL... y'aurai moyen aussi de considérer l'id de session comme l'adresse IP, mais ceux qui sont derrière un proxy, ils sont emmerdés... bref, je sais pas comment faire


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-06-2002 à 23:22:46    

siewn a écrit a écrit :

les sessions, soit ça utilise les cookies et à ce moment là autant utiliser directement des cookies



Non. Pour au moins 2 raisons :
 - Si tu as beaucoup de données à sauvegarder au cours d'une session tu ne vas pas t'amuser à les mettre chacune dans un cookie. Autant les conserver sur le serveur (accès instantané).
 - Les cookies sont modifiables et là il y a un vrai risque de sécurité. Avec les sessions, les données sont sur le serveur et elle ne sont donc pas modifiables.

Citation :

soit ça utilise un paramètre dans l'url (PHPSESSID=...) et là c trop la merde niveau sécurité.


D'un point de sécurité c'est pareil que les cookies, c'est tout aussi modifiable, mais de toute façon il n'y a pas tellement de risque : qu'est-ce qu'on peut bien faire d'un ID de session ?

Citation :

moralité : session = gros caca dans bcp de cas


Tu n'as pas compris l'intérêt des sessions je crois ;)


Message édité par gm_superstar le 13-06-2002 à 23:23:13
Reply

Marsh Posté le 13-06-2002 à 23:34:45    

moi j'ai bien compris l'intérêt des sessions. Mais je vais pas les utiliser comme elles sont implantées dans PHP4. Et ce pour une raison toute simple : c'est pour mon appli PhpWebGallery. Cette appli doit pouvoir tourner sur n'importe quel serveur, chez n'importe quel hébergeur... et comme les sessions ont un comportement aléatoire selon l'hébergeur... c'est mort. Je crois que je vais devoir passer l'id de session dans l'URL, mais bon, mon but ultime étant de m'afranchir totalement des cookies qui sont pour moi une source d'ennuis sans fin, en effet nombreux utilisateurs de mon appli sont venus me dire qu'il arrivaient pas à se loguer sur leur galerie... à cause manifestement d'un pb de cookie alor qu'ils sont derrière un firewall. Les sessions avec id de session dans l'URL anéantiront le pb !
Je vais faire une petite table dans laquelle j'aurai : session_id, user_id, expiration_date et je pense que ça ira... j'essaierai de limiter le nombre de caractères du session id à 10, ça devrait suffire.
Vous en pensez koi de ma façon de procéder ?


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
Reply

Marsh Posté le 13-06-2002 à 23:49:03    

z0rglub a écrit a écrit :

 en effet nombreux utilisateurs de mon appli sont venus me dire qu'il arrivaient pas à se loguer sur leur galerie... à cause manifestement d'un pb de cookie alor qu'ils sont derrière un firewall. Les sessions avec id de session dans l'URL anéantiront le pb !




 
commence par leur dire que si ils ont mis un killer de pub ou qu'ils refusent les cookies du serveur auquel ils accèdent dans leur browser, c'est pas ton problème et ça restreint les possibilités... on est pas des magiciens qd même...
On te donne une voiture de course sans roue là !!  :ouch:  
 
je prendrais l'option de dire que si la personne refuse les cookies, elle a le droit de voir tout ce qui n'en a pas besoin (galleries non protégées) mais se refuse elle même l'accès à la partie admin et aux galleries protégées.
 
Sinon, si tu es vraiemnt gentil, fait passer l'id session dans un cookie s'ils l'acceptent et dans l'url s'ils les refusent.


---------------
...oups kernel error...
Reply

Marsh Posté le 14-06-2002 à 00:59:31    

gm_superstar a écrit a écrit :

 
D'un point de sécurité c'est pareil que les cookies, c'est tout aussi modifiable, mais de toute façon il n'y a pas tellement de risque : qu'est-ce qu'on peut bien faire d'un ID de session ?




 
ben ton super visiteur il va vouloir montrer la super page qu'il a découvert à ses potes et il fait un copier/coller de l'url dans un forum. du coup tout le monde à accès à sa session et doncà ses infos...

Reply

Sujets relatifs:

Leave a Replay

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