|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Chef de projet MOA Inscription : décembre 2004 Messages : 561 ![]() |
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. |
|
|
00
|
|
|
#2 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
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. |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() Chef de projet MOA Inscription : décembre 2004 Messages : 561 ![]() |
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. |
|
|
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
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 |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
Eh quelqu'un peut-il nous aider? J'ai besoin de comprendre s'il vous plai.
Merci pour votre aide |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() |
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/ |
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
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 |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : septembre 2005 Messages : 1 741 ![]() |
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. |
|
|
00
|
|
|
#9 |
|
Nouveau Membre du Club
![]() Inscription : mars 2006 Messages : 90 ![]() |
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! |
|
|
00
|
|
|
#10 | |
|
Membre émérite
![]() Alain Inscription : novembre 2005 Messages : 897 ![]() |
Citation:
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. |
|
|
|
00
|
|
|
#11 | ||
|
Membre éclairé
![]() Chef de projet MOA Inscription : décembre 2004 Messages : 561 ![]() |
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 :
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. |
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() Inscription : janvier 2005 Messages : 1 249 ![]() |
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 ? |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com