Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1511 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Gestion des sessions

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Gestion des sessions

n°158581
z0rglub
Posté le 13-06-2002 à 14:48:48  profilanswer
 

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
mood
Publicité
Posté le 13-06-2002 à 14:48:48  profilanswer
 

n°158767
ratapouak
Posté le 13-06-2002 à 17:16:11  profilanswer
 

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.

n°158837
z0rglub
Posté le 13-06-2002 à 17:53:16  profilanswer
 

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
n°158866
Stligar
Posté le 13-06-2002 à 18:27:11  profilanswer
 

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

n°158876
yannick_fr​ere
Posté le 13-06-2002 à 18:32:11  profilanswer
 

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 !
n°158892
z0rglub
Posté le 13-06-2002 à 18:49:34  profilanswer
 

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
n°158958
yannick_fr​ere
Posté le 13-06-2002 à 19:56:16  profilanswer
 

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 !
n°158962
ethernal
Chercheur de vérité...
Posté le 13-06-2002 à 20:01:40  profilanswer
 

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...
n°158966
yannick_fr​ere
Posté le 13-06-2002 à 20:04:12  profilanswer
 

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 !
n°158982
ethernal
Chercheur de vérité...
Posté le 13-06-2002 à 20:34:00  profilanswer
 

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...
mood
Publicité
Posté le 13-06-2002 à 20:34:00  profilanswer
 

n°158985
siewn
Posté le 13-06-2002 à 20:44:02  profilanswer
 

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

n°159039
z0rglub
Posté le 13-06-2002 à 22:48:40  profilanswer
 

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
n°159042
z0rglub
Posté le 13-06-2002 à 22:55:03  profilanswer
 

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
n°159054
gm_superst​ar
Appelez-moi Super
Posté le 13-06-2002 à 23:22:46  profilanswer
 

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
n°159058
z0rglub
Posté le 13-06-2002 à 23:34:45  profilanswer
 

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
n°159067
ethernal
Chercheur de vérité...
Posté le 13-06-2002 à 23:49:03  profilanswer
 

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...
n°159087
siewn
Posté le 14-06-2002 à 00:59:31  profilanswer
 

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...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Gestion des sessions

 

Sujets relatifs
[Rapidité] PHP vs FastCGI[Java - Servlets] Utilisation des sessions
[PHP] A kel moment le PHP est-il interprété?...[PHP] questions au sujet des saut de lignes, puis des quote
[PHP] Comment faire pour detecter un user ?[ PHP / HTML ] Vite! Faut que je génére des pages!
[Javascript & PHP ] Fermer une fenetre au bout d'un temps donné[PHP] Pb de formulaire d'upload d'images...
[PHP & MySQL] Plusieurs requetes[PHP] gestion des sessions
Plus de sujets relatifs à : [PHP] Gestion des sessions


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR