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é] Problème d'expiration de session


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 29
    Points
    29
    Par défaut [Sécurité] Problème d'expiration de session
    Salut à tous,

    Bon j'ai parcouru toute la doc sur les sessions et comme je ne pense pas être neuneu (mais qui sait ? hein ?) je ne pense pas avoir trouvé ce que je cherche et pourtant c'est tout simple :

    J'utilise des sessions sans passer les id par les URL (je laisse tout faire à php comme une grosse faignasse)

    Tout marche nickel sauf ..... que la majorité des utilisateurs retournent à la page précédente avec la barre de navigation de explorer ce qui provoque une erreure (qui n'en est pas une) du genre :

    Avertissement : expiration du délai pour cette page La page requise a été créée en utilisant les informations fournies dans un formulaire. Cette page n'est plus disponible. Par sécurité, Internet Explorer ne renvoie pas automatiquement les informations vous concernant.

    Pour envoyer vos informations à nouveau et afficher cette page Web, cliquez sur le bouton Actualiser.
    Ce qui plonge l'utilisateur lambda dans la perplexité ! Hé oui tout le monde ne connais pas F5

    Or sur les autres sites il n'y à pas ce genre de problême. :

    Si quelqu'un veut tester : http://www.restaureduc.com

    pour le test

    identifiant : test01
    pass : 641977

    Merci d'avance.

  2. #2
    Membre habitué Avatar de poussinphp
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 428
    Points : 176
    Points
    176
    Par défaut
    Bonjour,

    Pourquoi n'utilise tu pas une vérification de la page précédente ?
    Tu vérifie que l'utilisateur vient bien de ta page formulaire sinon tu le renvois automatiquement sur l'index de ta page par exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (isset($form))
    {
       // la commande en javascript pour renvoyer sur une page automatiquement
       // je connais plut la fonction 
    }
    //---- ton code
    Tu peut faire cette vérification avec une variable que tu rend du formulaire, comme ça, ça t'évite de faire une nouvelle variable à passer.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 29
    Points : 29
    Points
    29
    Par défaut Problème d'expiration de session
    Ouaaaaah ultra rapide la réponse

    Mais je pense pas que cette solution peut m'aider. Je m'explique :

    J'ai des contenus dynamiques où les variables de sessions sont nécessaires, ces variables sont appellées par une include() lors de la connexion.

    voila le principe :

    <?
    session_start();

    // recupération des données FORM
    if (isset($_POST['ident']) AND isset($_POST['pass']))
    // création des variables de session
    {
    $_SESSION['ident']=$_POST['ident'];
    $_SESSION['pass']=$_POST['pass'];
    }
    include(".session.php"); // appel des autres variables par requette SQL
    ? >

    Ensuite sur les autres pages je conserve juste
    session_start();
    précision le FORM d'enregistrement renvoi sur la même page

    Merci d'avance,

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Je pense qu'il ne faudrait pas laisser ton navigateur sur un url
    qui provient d'un post, je m'explique:

    il y a deux formes de requêtes dans une application web, celles dont
    l'url a un sens "contextuel" par exemple: forum.php?article=122

    Et celles qui ont un sens d'ordre, tel que: page.php?command=delete&key=2

    Dans le deuxième cas, le rôle de la requête est d'appeler une commande
    qui ne devrait pas être appellé 2 fois :-) par un F5 par exemple. Donc ce
    genre d'url ne doit pas apparaitre dans la barre d'adresse après.

    C'est un peu similaire aux champs postés dans un formulaire de login.

    Dans ce cas, la page appellée pour loger l'utilisateur devrait générer
    une redirection pour renvoyer le navigateur sur un url "nettoyé".

    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_POST['ident']) AND isset($_POST['pass']))
    // création des variables de session
    {
      $_SESSION['ident']=$_POST['ident'];
      $_SESSION['pass']=$_POST['pass'];
      header("Location: http://tonsite/une_page.php");
      exit;
    }
    Je pense que cette aproche devrait t'éviter les fameuses page "expiration du délai"

    A+
    Marc

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 17h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 16h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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