Précédent   Forum des professionnels en informatique > PHP > Outils > WAMP
WAMP Forum d'entraide sur WAMP (Windows Apache MySQL PHP) : installation, utilisation, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/09/2006, 15h55   #1
Membre éclairé
 
Avatar de nicoaix
 
Homme
Chef de projet MOA
Inscription : décembre 2004
Messages : 561
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 561
Points : 325
Points : 325
Par défaut Plusieurs sessions pour un utilisateur

Bonjour,
Presque tout est dans le titre :-)
Sur une appli web, j'ai un formulaire d'identification. Lorsque l'utilisateur se connecte cela cré une session.
Dans cette session je stocke notamment le login et l'IP de l'utilisateur.
Or il m'arrive régulièrement d'avoir plusieurs session pour un même utilisateur (même login, même IP mais 2 fichiers de session différents).

Comme cela est-il possible?

Merci.
nicoaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 13h27   #2
Nouveau Membre du Club
 
Avatar de AzertyH
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2006
Messages : 90
Points : 35
Points : 35
Je ne suis qu'un demi débutant, mais je peux peut-être aporter mon point de vue, comme ça vous pourrez éventuellement vérifier si j'ai bien assimilé les sessions.

Tu dis que tu as plusieur numéros de session pour un même utilisateur. Cela me parait normal car le numéro de session change à chaque fois qu'une session se détruit. Par exemple, si l'utilisateur ferme sont navigateur, puis le reouvre et se relog, alors cet utilisateur obtiendra un numéro de session diférent.

Je viens juste d'en faire l'expérience sur mon server Wamp.
AzertyH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 15h13   #3
Membre éclairé
 
Avatar de nicoaix
 
Homme
Chef de projet MOA
Inscription : décembre 2004
Messages : 561
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 561
Points : 325
Points : 325
Normalement c'est pas le numéro de session qui change quand un meme utilisateur se déconnecte et se reconnecte, mais c'est le fichier de session qui est détruit (donc son numéro aussi) et un autre fichier de session est créé (avec un nouveau numéro de session).
Il ne devrait donc pas être possible d'avoir 2 fichiers pour un même utilisateur.

A moins qu'il y ai un problème (mais lequel?) lors de la destruction de la session qui fait que la session se termine mais le fichier de session n'est pas détruit.
nicoaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 16h38   #4
Nouveau Membre du Club
 
Avatar de AzertyH
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2006
Messages : 90
Points : 35
Points : 35
Escuse mais je ne comprend toujours pas.
Les fichiers dont tu parles sont-ils bien situés dans le répertoires de fichiers temporaire ("tmp" par défaut) ?
Parce que moi, j'ai fait une expérience :
Quand l'utilisateur se logue, un fichier session est créé dans le répertoire /tmp. Puis quand il se déconecte (par exemple en fermant le navigateur), le fichier session est toujours présent dans le dossier /tmp. En fait, ce dossier stock l'historique des sessions.
Peux-tu me dire ce qui cloche ?
Merci pour ton aide
AzertyH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 22h28   #5
Nouveau Membre du Club
 
Avatar de AzertyH
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2006
Messages : 90
Points : 35
Points : 35
Eh quelqu'un peut-il nous aider? J'ai besoin de comprendre s'il vous plai.
Merci pour votre aide
AzertyH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2006, 23h01   #6
Expert Confirmé
 
Avatar de Sub0
 
Homme
Inscription : décembre 2002
Messages : 3 468
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 39

Informations forums :
Inscription : décembre 2002
Messages : 3 468
Points : 3 115
Points : 3 115
Envoyer un message via MSN à Sub0 Envoyer un message via Skype™ à Sub0
Le fichier de session est créé à chaque fois que session_start est appellé.
Je conseille la lecture de ce tuto :
http://a-pellegrini.developpez.com/t...hp/session-db/
Sub0 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 07h00   #7
Nouveau Membre du Club
 
Avatar de AzertyH
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2006
Messages : 90
Points : 35
Points : 35
Merci pour ce lien, mais je le connais par coeur ce tuto car ça fait 2 semaines que je suis dessus!
Moi ce que j'ai du mal a saisir c'est le comportement précis des sessions. Par rapport au comportement des sessions, j'ai casiment compris la totalité des choses, mais après quand on commence à rentrer dans des cas plotôt particulier, là je galère.
Par exemple, dans la question de Nicoaix, je comprend pas ce qu'il a comme problème et j'aimerai savoir car cela m'enrichirait d'avantage par rapport à ce que je connais déjà sur les session.
D'autre part, puisque tu nous donnes ce lien sur le tuto de sécurisation des sessions avec une base de données, j'aurai une question à son propos.

Ce système enregistre l'adresse IP ainsi que le type de browser pour chaque utilisateur identifié. Ainsi, le rédacteur nous dit que pour avoir des soupsons sur un hackage éventuel de notre site, on vérifie si pour la même session l'utilisateur n'a pas changé d'IP. Pareil pour le browser. Plus précisément, il dit qu' un utilisateur ne vat pas s'amuser à changer de navigateur d'une page à l'autre (j'comprend pas).
C'est sur cette dernière phrase que je plante. Aparament sa veut dire que :
1) Il faut effectuer un test d'adresse IP et de browser à chaque changement de page, de la part de l'utilisateur (pouvez-vous me confirmé cela ???)
2) Je n'arrive pas à imaginer commant un hacker peut s'introduire dans un espace sécurisé du site avec un identifiant de session déjà utilisé. Si le hacker trouve un identifiant de session déjà utilisé par un utilisateur, et si ce même utilisateur avait fermé son navigateur avant ce vol de session, alors je me demande si ce numéro de session est encore réutilisable pour avoir acces à cet espace sécurisé ???
3) Si la réponse est contraire à ce que j' hypothèse dans le 2), alors je ne vois qu'une seule explication pour réutiliser une session volée : le hacker vole et utilise un identifiant de session dont la session est encore en cours d'utilisation par l'utilisateur.

Voilà c'est assez compliquer d'expliquer ce que je n'arrive pas à me faire expliquer en ce moment.

Merci infiniment pour votre aide
AzertyH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 15h16   #8
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Ce que tu as mis en rouge, je vais te donner un exemple pour illustrer

1) Tu navigue sur ma page d'accueil.
2) Tu suis le lien des session et tu arrive a l'article sur les session

Crois tu que entre ces 2 étapes quelqu'un change de navigateur ?

Si apr exemple tu détecte avec sur la page 1 (grâce aux session) que le browser enregistrer est Firefox.
Puis sur la page 2 pour la même session Internet Explorer.

C'est complètement absurde. La vérification du browser est faite pour ca.

C'est pareil pour l'adresse Ip, si il y a un changement d'IP entre 2 requete c'est qu'il y a un leger probleme avec cet utilisateur.

Si tu ne comprend pas bien comment quelqu'un peut s'infiltrer et prendre place sur une session d'autrui, un article sur la sécurité devrais normalement sortir d'ici peu. Je suppose que ca y sera expliquer.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/10/2006, 23h37   #9
Nouveau Membre du Club
 
Avatar de AzertyH
 
Inscription : mars 2006
Messages : 90
Détails du profil
Informations personnelles :
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mars 2006
Messages : 90
Points : 35
Points : 35
Ok merci pour ta réponse.
C'est vrai que j'ai du mal à comprendre comment un pirate peut prendre place sur la session d'autruit. C'est sa qui me ronge!
AzertyH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2006, 01h55   #10
Membre émérite
 
Avatar de alain31tl
 
Alain
Inscription : novembre 2005
Messages : 897
Détails du profil
Informations personnelles :
Nom : Alain
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : novembre 2005
Messages : 897
Points : 910
Points : 910
Citation:
Envoyé par nicoaix
.....Normalement c'est pas le numéro de session qui change quand un meme utilisateur se déconnecte et se reconnecte, mais c'est le fichier de session qui est détruit (donc son numéro aussi) et un autre fichier de session est créé (avec un nouveau numéro de session).
Il ne devrait donc pas être possible d'avoir 2 fichiers pour un même utilisateur........
Salut

Entièrement d'accord avec nicoaix ( et à 100%) avec ce point de vue.

Dans ce cas :

Ce que nous précise pas justement AzertyH, est-ce qu'il y a effectivement deconnexion de l'utilisateur concerné ?

Ou plus precisemment, est-ce que ce même utilisateur a la possibilité de se relogger une fois qu'il est identifié ?....et ceci sans fermer le navigateur ( ??)

Ceci expliquerait tout.
__________________
Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.
alain31tl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2006, 19h00   #11
Membre éclairé
 
Avatar de nicoaix
 
Homme
Chef de projet MOA
Inscription : décembre 2004
Messages : 561
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Chef de projet MOA
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : décembre 2004
Messages : 561
Points : 325
Points : 325
Pour essayer d'être clair, tout d'abord voici le début de ma page index.php qui est la page par défaut quand un utilisateur arrive sur mon site:
Code :
1
2
3
4
5
6
7
<?PHP
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}
session_destroy();
Ceci me permet de détruire la session de l'utilisateur (et de vider les variables de session) s'il en avait une.

Ensuite un point important : j'ai réglé mon serveur web pour que les sessions soient détruite automatiquement au bout d'une heure (session.cookie_lifetime = 3600)

Ceci étant dit, voici un exemple de connexion avec mon compte d'utilisateur Toto:
1. Je vais sur la page index.php et j'y saisi (dans un formulaire) mon nom d'utilisateur 'toto' et mon mot de passe 'password'.
Ceci a pour résultat d'une part de me renvoyer (après identification dans la base de données) vers une page d'acuueil et d'autre part de créer le fichier de session sesssion_56rfg68ery68re457gfds7 dans lequel se trouve mon nom d'utilisateur, mon IP... Ce fichier est créée dans le répertoire tmp situé un cran au-dessus de mon arboresence web. Mon site web est dans C:\Program Files\wamp\www et mon répertoire de sessions est dans C:\Program Files\wamp\tmp
Je précise que ce chemin est modifié dans le php.ini
2. Je me reconnecte 3 heures plus tard sans avoir rien touché depuis. Je lance un navigateur et je vais sur la page index.php et je me connecte comme en 1.
Je suis redirigé, normalement vers la page d'accueil. Mais quand je vais voir dans mon répertoire /tmp j'ai 2 fichiers de session.

Or normalement si la durée de vie des cookies de session est d'une heure je ne devrais plus avoir de fichier de session (hormis le dernier que je viens de crééer en me reconnectant).

Et ce qui me gène le plus c'est que ce phénomène est aléatoire. C'est à dire qu'avec certains utilisateurs la déconnexion fonctionne bien et les fichiers sont bien détruits et avec d'autres ça semble ne pas fonctionner...mystère.
nicoaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/10/2006, 19h10   #12
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Ton cookie de session est détruit, mais pas forcément le fichier texte sur le serveur. Le répertoire temporaire est purgé régulièrement, mais pas en temps réel. Cela explique la présence de fichiers de session d'utilisateurs non connectés.
La question de sécurité est donc : un hacker peut-il utiliser ce fichier de session obsolète pour se connecter avec le même id de session en trafiquant son cookie ?
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h32.


 
 
 
 
Partenaires

Hébergement Web