IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Session_id - lifetime


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut [Sécurité] Session_id - lifetime
    J'aimerait savoir comment est défini la durée de vie d'une session_id() ?

    Est-ce le serveur qui renvoi cette id, ou est-elle propre au navigateur en local ?

    Le problème est que j'ai codé tout un site, mais après des tests avec des utilisateurs débutant (donc forcément très lents), doivent encoder une commande dans un gros formulaire (entre 100 et 600 produits affichés) donc ils passent au moins 5 a 10 minutes à le faire.

    Un peu de structure du site pour comprendre le problème :
    Quand l'utilisateur se log, la valeur de la session_id() est stocké dans la base sql de la fiche du client, donc une fois qu'il se log et que le user et pass sont ok il regarde dans la bdd si l'id est la même auquel cas, il la change.
    Ensuite dans chaque page qui nécessite une certaine sélection, l'utilisateur actuel (login) est stocké dans une variable de type $_SESSION afin de retrouver la fiche de l'utilisateur et pouvoir regarde la Session_id stockée si c'est les mêmes, ça passe l'utilisateur a accès sinon il est invité à se relogguer.

    Retour au problème, après ces 5 a 10 minutes min d'encodage, l'utilisateur est invité à se relogger (donc la session a expiré) le site est pleinement fonctionnel pour un utilisateur assez rapide donc les pages sont bonne et c'est juste ce controle qui ne passe pas, je ne voit donc comme problème cette variable de session qui seraient détruite trop tôt d'où ma question si ce temps de destruction était réglé localement ou coté serveur.

    Merci d'avance

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    Pour répondre à ta question le session_lifetime est défini par le php et n'est pas du tout lié au navigateur ( si ce n'est pour le cookie )

    Pour modifier la valeur de ce paramètre tu peux regarder dans le php.ini

    Pierre

  3. #3
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Mais je te conseille plutot l'utilisation de la fonction session_cache_expire(): http://fr3.php.net/manual/fr/functio...che-expire.php

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par FCYPBA
    Pour répondre à ta question le session_lifetime est défini par le php et n'est pas du tout lié au navigateur ( si ce n'est pour le cookie )

    Pour modifier la valeur de ce paramètre tu peux regarder dans le php.ini

    Pierre
    ok c'est bien ce qu'il me semblait mais je ne voulait pas déranger l'hébergeur pour rien

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Citation Envoyé par Yobs
    Mais je te conseille plutot l'utilisation de la fonction session_cache_expire(): http://fr3.php.net/manual/fr/functio...che-expire.php
    Je viens de voir grâce à ça qu'elle était fixée a 180. Ce temps peut-il être en secondes ou obligatoirement en minutes ?

  6. #6
    Membre éclairé Avatar de Yobs
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    675
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2004
    Messages : 675
    Points : 846
    Points
    846
    Par défaut
    Oui mais tu peux définir toi même ta valeur, regarde dans l'exemple elle est définie à 30 minutes.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Je ne suis pas certain que celà vienne de là car le message correspondant au else de la ligne

    if (!empty($_SESSION['currentuser']) && $_SESSION['useractive'] == 1 && !empty($_SESSION['userssid']) && $_SESSION['zone'] == "cmd")

    En groz donc si la variable session currentuser ou useractive (valeur défini une fois qu'on se log) ou si la variable session id est vide ou la session de zone est vide (cette vérification est sur les 3/4 du site) donc je pense que le problème ne peut que venir de là car elle peuvent naviguer sur 3/4 pages du site et apparement quand elles encodent, à la fin ça affiche le message correspondant ?

    Quel est votre avis parcque là je deviens fou; je vais refaire le test 'grandeur nature' sur le pc là ou ça ne fonctionnait pas en attendant (maintenant le session expire est fixé a 3600 donc meme si c'est en seconde ça nous laisse 1H). Si je voit que ça ne marche pas je croit que je pourrait virer les !empty car ça controle après les sessions id (celle de la base et l'actuelle)

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 104
    Points : 100
    Points
    100
    Par défaut
    Après test, ce problème ne survient que sous internet explorer (quelle merde je sait) malheureusement je n'ai pas le choix donc les tests étant fait sous firefox tout roulait et roulent toujours. Y a-t-il un gestion fondamentalement différente des sessions par IE ou firefox ??? car j'ai ma page de test avec les variables et après X minute (3-4-5), le variable de sessions sont vidées

    J'ai essayé de changer les paramètres de sécurité (ignorer la gestion automatique des cookies accepter accepter et accepter les cookie de la session) mais rien n'y fait le variable de sessions se vident sous IE hors il n'y a aucun unset ou destroy sur le site

Discussions similaires

  1. La Sécurité dans Access
    Par Maxence HUBICHE dans le forum Sondages et Débats
    Réponses: 81
    Dernier message: 24/06/2007, 02h07
  2. [Sécurité] Roles
    Par Mister Nono dans le forum Débuter
    Réponses: 4
    Dernier message: 06/12/2003, 12h55
  3. probleme de sécurité
    Par maxmj dans le forum ASP
    Réponses: 2
    Dernier message: 10/11/2003, 21h44
  4. [TomCat][sécurité]config fichier web.xml
    Par liomac dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 24/09/2003, 16h46
  5. Pb de sécurité
    Par xtrips dans le forum Débuter
    Réponses: 6
    Dernier message: 16/04/2003, 08h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo