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éconnexion d'une session


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut [Sécurité] problème déconnexion d'une session
    Bonjour

    J'ai un projet PHP à faire avec l'IUT et j'ai toujours un problème qui revient avec mes sessions, je m'explique :
    Je me connecte, j'arrive sur ma page admin, ensuite je me déconnecte et lorsque je clique sur page précédent dans mon navigateur, je retourne sur ma page admin...

    voici le code de la page deconnection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    session_start();
    session_destroy();
    unset($_SESSION);
    header("Location: blog.php");
    ?>

  2. #2
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Il y a de fortes chances pour que ça soit tout simplement ton navigateur qui a gardé cette page en cache.
    Essayes de faire un "rafraichir" ou "actualiser" (F5) après avoir fait "précédent" pour en avoir le coeur net.
    Si ce n'est qu'un problème de cache, ce n'est pas grave, il n'y a aucun risque au point de vue sécurité, tu n'as que l'illusion d'être encore connecté mais c'est faux.
    Pour le résoudre il faut configurer ton navigateur pour ne pas mettre en cache les pages (c'est nettement plus confortable quand on développe) et/ou mettre dans les entetes http et/ou dans le head de ta page html des métadonnées qui indiquent aux navigateurs et autres proxy de ne pas mettre cette page-ci en cache :

    dans les entetes http (en php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Pragma: no-cache');
    dans le head (en html) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut
    Mon projet est en faite la création d'un site de blog (classique! ^^).

    Lorsque je me connecte, j'arrive sur ma page admin où je peux ajouter/supprimer des articles,... je me déconnecte, je retourne donc à ma page principal, là je clique sur précédent je retombe sur ma page admin où je peux toujours ajouter,... et c'est lorsque je retourne sur ma page principal que là, je suis réellement déconnecté...

    Je ne pense pas que ce soit problème de cache, j'ai actualiser après mettre déconnecté, et j'ai ajouté dans es page ce que tu m'as conseillé...Ce doit donc pas être ça...

  4. #4
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    fais voir le code de la page admin et de la page principal (en particulier le code qui vérifie que l'utilisateur est bien authentifié)

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2006
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2006
    Messages : 120
    Points : 62
    Points
    62
    Par défaut
    Voici le code de ma page principal où on se connecte (blog.php):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    if  (!isset($_SESSION['authentification']))    
    {
    	echo '<div class="identification"><form action="verification.php" method="POST"><p>Login : <input type="text" name="login"></p><p>Mot de Passe <input type="password" name="pass"></p><p><input type="submit" value="Se connecter"></p></form></div>';
    }
    else
    {
    if ($_SESSION['authentification'] == "autorisé")
    {
    echo "<div class='identification'><p><a href='deconnection.php'>Se déconnecter</a></p><p><a href='admin.php'>Administrateur</a></p></div>";
    }
    else
    {
    	// Si il y a une erreur d'authentification alors on détruit la variable $_session et on retourne à la page précédent pour tenter de se reconnecter.
    echo "<div class='identification'>";
    echo "<p>Erreur d'authentification!</p>";
    unset($_SESSION['authentification']); 
    echo "<a href='blog.php'>Retour</a>";
    echo "</div>";
    et voici le code de ma page de vérification où il n'y a que du code php (verif.php) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    <?php
    session_start();
    header('Pragma: no-cache');
    // vérification des identifiant
    $fichier=fopen("MdP.txt","r");
    $mdp=fgets($fichier);
    // concaténation des informations: pseudo et mot de passe
    $cat=explode("||", $mdp);
    $nomutilisateur = $cat[0];
    $motdepass = $cat[1];
    $util=$_POST['login'];
    $passw=$_POST['pass'];
    // si les information sont correct au met la variable $_session sur autorisé et on redirige sur la page admin
    if (($nomutilisateur == $util) && ($motdepass == $passw))
    { 
    	$_SESSION['authentification'] = "autorisé";
    	header("Location: admin.php"); 
     
    }
    else 
    {	// si les informations sont fausses on redirige vers blog.php
    	$_SESSION['authentification'] = "nonautorisé";
    	header("Location: blog.php");
    }
    ?>
    Et voilà la page admin.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    	<?php
    		if  (!isset($_SESSION['authentification']))    
    			{
    			header("Location: blog.php");
    			}
    		else
    			{
    				if ($_SESSION['authentification'] == "autorisé")
    					{
    					echo "<div class='identification'>";
    					echo "utilisateur connecté</br>";
    					echo "<a href='deconnection.php'>Se déconnecter</a>";
    					echo "</div>";
    					}
    				else
    					{
    					echo "utilisateur non connecté</br>";
    					echo "<a href='blog.php'>Se connecter</a>";
    					}
    			}
    	?>
    Bon soyez indulgent s'il vous plaît...j'ai appris comment marché les sessions il n'y a pas longtemps et j'ai fais le code moi même...

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

Discussions similaires

  1. problème de déconnexion d'une session
    Par meddy dans le forum Langage
    Réponses: 6
    Dernier message: 20/04/2007, 11h27
  2. [Oracle9i]Problème d'accès à une session
    Par lilas_violet dans le forum Connexions aux bases de données
    Réponses: 4
    Dernier message: 07/02/2007, 11h55
  3. [Sécurité] Problème de valeur de session
    Par navis84 dans le forum Langage
    Réponses: 19
    Dernier message: 22/06/2006, 10h48
  4. [Sécurité] problème lors d'une redirection
    Par sam01 dans le forum Langage
    Réponses: 4
    Dernier message: 10/04/2006, 23h01
  5. Déconnexion d'une session Win2k
    Par lamasse dans le forum C++Builder
    Réponses: 3
    Dernier message: 02/10/2003, 08h39

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