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

Contribuez / Téléchargez Sources et Outils PHP Discussion :

Protéger un espace d'administration


Sujet :

Contribuez / Téléchargez Sources et Outils PHP

  1. #1
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut Protéger un espace d'administration
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Protéger un espace d'administration

    Ce code permet de protéger l'accès à une page.



    Pour l'essayer :



    * Lancer la page sur le serveur

    * Saisissez les informations telles que le login et le mot de passe

    * Cliquer sur OK



    Pour changer le login et le mot de passe, regarder dans le code, tout y est expliqué.

    Qu'en pensez-vous ?

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Points : 1
    Points
    1
    Par défaut Je n'ai pas trop aimé !
    Bonjour,

    Merci à Ludovic pour son code.

    Je n'ai pas trop aimé d'abord les fautes d'orthographe.

    Ensuite, il ne marche pas. A moins d'avoir réglé register_globals à ON (ce qui n'est pas très protecteur).
    Si on n'a pas accès au php.ini, on peut le faire fonctionner (php >=4.2.0) en ajoutant au début la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    extract($_REQUEST,EXTR_OVERWRITE);
    Ensuite, l'idée de passer par GET dans un "protection.php" n'est pas fameuse.
    voir http://blog.developpez.com/julienpau...p-self-et-xss/

    Au lieu de :
    <form method="post" action="<? print "$PHP_SELF?entreeludo=2"; ?>">
    Faire :
    <form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
    <input type='hidden' name='entreeludo' value='2'>
    C'est moins tentant à attaquer.

    $log="ton_login_ici"; // change ton login ici
    $pwd="ton_pass_ici"; // change ton password ici
    // *************************
    $log=ereg_replace("\n", "", $log);
    $pwd=ereg_replace("\n", "", $pwd);

    if (strcmp($login, $log) != 0) { //$login est la variable du formulaire précédent
    print "\n<center><b>Le login est incorrect</b><br><br><a href=\"protection.php\">RETOUR</a></center>";
    exit; // on n'exécute pas la suite du si si le login est faut...
    Pourquoi nettoyer $log et $pwd ? ereg_replace ne sert à rien, on vient de les coder en dur!

    Je n'ai pas trop aimé l'excès de variables inutiles. "entreeludo" prend 3 valeurs, or seule $entreeludo=2 est utilisée...
    $entreeludo=3; // entreeludo prend la variable 3 (login et pass sont bon si on arrive là)
    $go="okludo"; // la variable go prend la valeur "okludo" pour afficher la partie protégée.
    }
    if ($go == "okludo") { // Début de la page d'administration
    Curieusement, en supprimant ces lignes, tout va bien...


    Je propose donc à Ludovic une version amaigrie de son code :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    <?php
    $login=$_POST['login'];
    $password=$_POST['password'];
    if(isset($login)) { // on arrive du formulaire 
        $log="ton_login_ici"; // change ton login ici
        $pwd="ton_pass_ici"; //  change ton password ici
        if ((strcmp($login, $log) != 0)||(strcmp($password, $pwd) != 0)) {
    // Ne facilitons pas la tâche aux malveillants - Le test est fait sur la paire login/password
           	 print "<html><body style=\"text-align:center\"><b>Vous n'êtes pas reconnu.</b><br />Vérifiez SVP.<br /><a href=\"".
    		htmlentities($_SERVER['PHP_SELF'])."\">RETOUR</a></body></html>";
    // petite page bien formée qui efface  la paire login/password
           	 exit; }
    // Ou bien un header("Location: etc... ou bien :
         echo "<html><body><h1>TE VOILA DANS L'ESPACE ADMINISTRATION DE TON SITE.<br /><br />SEULES LES PERSONNES AYANT LE MOT DE PASSE ET LE LOGIN PEUVENT Y ENTRER.</h1>";
    /* ATTENTION DANS LE CAS D'UNE UTILISATION D'UN FORMULAIRE AVEC ENVOI DE DONNEES DANS CETTE PARTIE, IL faut METTRE :
     <form method="post" ACTION='princip.php'>
    <input type='hidden' name='go' value='okludo'>
    <input type='hidden' name='entreeludo' value='3'>
    ......
    // Mettre ici tout ton espace administration -->
    // Fin  de la page d'administration
    */
    }
    else { // la première connexion à la page ou sur un échec
    echo <<<EOF
    <html>
    <head>
    <title>ESPACE ADMINISTRATION - PAGE PROTEGEE</title>
    <style type="text/css">
      td {font-family:"Verdana";font-size:12pt}
      body, .centre {text-align:center}
    </style>
    </head>
    <body>
        <br /><h2>Saisissez votre login et votre mot de passe</h2><br />
        <form method="post" action="">
        <table align=center>
    	<tr><td>Login : </font></td>
    	<td><input type="text" name="login" size=15></td></tr>
        	<tr><td>Mot de passe : </font></td>
    	<td><input type="password" name="password" size=15></td></tr>
    	<tr><td class="centre" colspan="2"><input type="submit" name="enter" value="- OK -" style="cursor:hand;color:blue;font:bold;"></td></tr>
        </table><br />
        </form>
    <br />Espace Administration prot&eacute;g&eacute;
    <br />Par Ludovic Giambiasi
    </body>
    </html>
    EOF;
    }
    ?>


    Enfin, une question à Ludovic que mets-tu dans le fichier ".htaccess" de la zone protégée ?

    A+

Discussions similaires

  1. [Magento] Accès à l'espace d'administration
    Par paradeofphp dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 14
    Dernier message: 22/02/2016, 10h34
  2. Créer un espace d'administration
    Par skycaptain666 dans le forum Langage
    Réponses: 6
    Dernier message: 20/07/2009, 13h12
  3. Réponses: 1
    Dernier message: 16/06/2009, 17h32
  4. Protéger les espaces dans les chemins
    Par Bruno51 dans le forum Langage
    Réponses: 3
    Dernier message: 16/11/2007, 15h01
  5. [Cookies] Probleme session espace d'administration
    Par kodokan dans le forum Langage
    Réponses: 4
    Dernier message: 21/09/2006, 19h55

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