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é] Sécurité sur une page admin


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Par défaut [Sécurité] Sécurité sur une page admin
    Bonjour,

    je voulais savoir si avec une simple verification de la présence d'une variable session comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    session_start();
     
    if(isset($_SESSION['username']) && isset ($_SESSION['password']))
     
    { ici acces a l administration du site ...
    }
     
    else {
     
    	 echo 'Vous n êtes pas autorisé à accéder à cette page.';
     
    	 }
     
    ?>
    c'était suffisant niveau sécurité.

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Je te conseil de lire cette documentation disponible sur php.net .

    [Edit] : Ce que tu nous montres est très simple, et peut être facilement détourné. Il faut beaucoup plus de rigueur et ne pas oublier session_register();

    See you

  3. #3
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Par défaut
    Merci pour ta réponse, j'ai essayé autre chose
    est-ce mieux comme ceci? :

    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
    26
    27
    28
    29
    <?
     
    session_start();
     
     
    		// Connexion à la base de données		
    		$db = mysql_connect ('localhost', 'root', '');
    		mysql_select_db ('mysql',$db);
    		$req = "SELECT username, password FROM users WHERE username = '".$_SESSION['username']."' ";
    		$res = mysql_query ($req) or die ('Erreur :'.mysql_error());
    		$data = mysql_fetch_array($res);
     
    if ($_SESSION['username'] == $data['username'] && $_SESSION['password'] == $data['password']) 
    	{
    	echo 'Bienvenue <span style="color: 0000FF;">' . $_SESSION['username'] . '</span><br><br>';
    	echo '<a href="admin.php?manage=news">Gérer les news</a><br>';
    	echo '<a href="acces.php?acces=manage">Gérer les droits d\'accès</a><br>';
    	echo '<a href="admin.php?manage=gallery">Gérer les images</a><br><br>';
    	echo '<a href="logout.php">Logout</a><br><br>';
    	}
     
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    else {
    	 echo '<br><br><br>';
    	 echo '<font size="2" face="Verdana"><center>Vous n\'êtes pas autorisé à accéder à cette page.</center></font>'.'<br>';
    	 echo '<font size="2" face="Verdana"><center><a href="Untitled-1.php">Retour</a></center></font>';
    	 }
    ?>
    merci

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Le problème dans ton script, c'est que n'importe qui peut arriver à administrer (au passage, il faut que sur toutes tes pages d'administration tu re-vérifies que la personne soit bien un admin).

    Il faut pour éviter cela ajouter une table `grade` (ou autre) avec comme niveau, par exemple :
    0 -> Banni
    1 -> Simple membre
    2 -> Modérateur
    3 -> Administrateur

    et tu vérifies que la personne soit bien un administrateur. (Tu peux utiliser un tableau pour ça)

    See you.

  5. #5
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 16
    Par défaut
    Citation Envoyé par SpiritOfDoc
    Le problème dans ton script, c'est que n'importe qui peut arriver à administrer (au passage, il faut que sur toutes tes pages d'administration tu re-vérifies que la personne soit bien un admin).

    Il faut pour éviter cela ajouter une table `grade` (ou autre) avec comme niveau, par exemple :
    0 -> Banni
    1 -> Simple membre
    2 -> Modérateur
    3 -> Administrateur

    et tu vérifies que la personne soit bien un administrateur. (Tu peux utiliser un tableau pour ça)

    See you.

    yop,

    mais en fait j'ai une table "users" qui contient uniquement des administrateurs.

    ce n'est pas une zone de login pour membres, c'est justes pour des administrateurs.

    J'ai l'impression que tu consideres ca comme un truc login pour membres , administrateurs & cie.

    Je me trompe?

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    En effet, je pensais que tu avais une seule et même table (je suis pas devin, pas encore :')).

    Fait un session_register('nom'); et ensuite fait une verification du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if(!session_is_registered('nom')) {
     $_SESSION = array();
     session_unset(); 
     session_destroy();
     header('location: index.php');
     die(); 
    }
    Enfin, ça c'est de tête ... donc j'suis pas sur à 100% que cela fonctionne.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/03/2007, 22h21
  2. Réponses: 10
    Dernier message: 13/01/2007, 14h46
  3. Réponses: 1
    Dernier message: 20/09/2006, 01h29
  4. application qui connecte sur une page web
    Par spoolz dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 14/04/2004, 10h47
  5. [RaveReport] - Bloquer groupe sur une page
    Par muaddib dans le forum Rave
    Réponses: 3
    Dernier message: 25/02/2003, 17h21

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