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é] fichier mcPass.php login et password - avec code


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 12
    Points : 11
    Points
    11
    Par défaut [Sécurité] fichier mcPass.php login et password - avec code
    Bonjour,

    je refais le message avec les balises "code" :

    j'avais fait il y a 1 an, sur un site une partie du style "admin" ou le client du site avait un acces prive sur une page et pouvait telecharger des documents a mettre a disposition de ses employés .
    le directeur clique sur un lien du genre "acces prive directeur pour telecharger document" et la avant d'arriver sur la page ou il y a le module lui permettant de telecharger des documents, il doit d'abord rentrer un login + password.

    de la meme facon, l'employe peut cliquer sur un lien du genre "acces privé employé pour consulter les documents", ou il pourra donc consulter les documents telecharges par l'employeur.

    ceci fonctionnait bien il y a 1 an.
    mais pendant 8 à 12 mois cela n'a pas ete utilisé.

    aujourd'hui je refais les mises a jour de ce site, le directeur veut de nouveau utiliser cette fonctionnalite,

    or cela ne fonctionne plus comme avant, sans avoir fait aucun changement.

    j'avais trouve sur le net un script Php "mcPass.php" pour proteger justement cet acces par login et password.

    aujourd'hui, je suis obligé de supprimer l'appel de ce script pour que cela fonctionne, je n'ai donc plus l'acces par login et password

    j'ai lu qu'avec les dernieres versions de Php , il y avait eu un changement important au niveau de la variable "register_globals".

    j'ai eu beau tourner le code dans tous les sens, et vu que l'on m'avait aidé a faire cette partie la car je ne suis pas experte en php, je n'arrive pas a trouver et comprendre le probleme

    voici le fichier appelé quand on clique sur "acces prive telecharger un document"


    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
     
    <?
      $ok = explode(":",$HTTP_COOKIE_VARS["mcPass"]);
      if(empty($ok[0])){ header ("location:http://www.adressedusite.com/private/mcPass.php?go=$PHP_SELF"); }
      ?>
     
    <?
     include("head.inc.php");
    ?>
    <table width="100%" height="80" border="0" cellspacing="5">
        <tr>
         <td align="center"><b><a href="document.php">T&eacute;l&eacute;charger un nouveau document</a></b></td>
              </tr>
    </table>
     
    <?
     include("bottom.inc.php");
    ?>

    et je dois enlever la partie


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?
      $ok = explode(":",$HTTP_COOKIE_VARS["mcPass"]);
      if(empty($ok[0])){ header ("location:http://www.adressedusite.com/private/mcPass.php?go=$PHP_SELF"); }
      ?>
    qui fait appel au fichier mcPass.php pour traiter login et password

    je mets ci dessous le fichier mcPass.php

    merci de votre aide
    sand




    fichier mcPass.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
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
     
    <?
    // mcPass 1.0 - copyright 2002 Marc Cagninacci - <a href="mailto:marc@phpforums.net">marc@phpforums.net</a> - <a href="http://www.phpforums.net" target="_blank">http://www.phpforums.net</a>
     
    // Configuration MySQL - Set this
    $host="sql01.zarcrom.net";
    $login="lelogindelabase";
    $pass="lepassworddelabase";
    $base="lenomdelabase";
     
    // Language - Set this
    $lErrLog= "Nom Incorrect";            // "Wrong Login";
    $lErrPass= "Mot de Passe Incorrect";  // "Wrong Password";
    $lLogin= "Nom";                       // "Login";
    $lPass= "Mot de Passe";               // "Password";
    $lValider= "Valider";                 // "Submit";
     
     
     
     
    /* --------------------------------------------------------------------------------------
     - Envoyez ce fichier mcPass.php à la RACINE de votre site
        Upload this file mcPass.php in the ROOT of your site
     - Copiez les quatre lignes suivantes tout en haut de chaque page que vous voulez protéger:
        Paste the four lines below at the very top of each page you want to protect:
    -----------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------
      <?
      $ok = explode(":",$HTTP_COOKIE_VARS["mcPass"]);
      if(empty($ok[0])){ header ("location:http://$HTTP_HOST/mcPass.php?go=$PHP_SELF"); }
      ?>
    -----------------------------------------------------------------------------------------
    -----------------------------------------------------------------------------------------
     
     - Naviguez jusqu'à <a href="http://www.votresite.com/mcPass.php" target="_blank">http://www.votresite.com/mcPass.php</a> et saisissez un nom et un mot de passe.
        Go to <a href="http://www.yoursite.com/mcPass.php" target="_blank">http://www.yoursite.com/mcPass.php</a> and choose a login and a password
     
     -----------------------------------------------------------------------------------------
    ----------Ne rien modifier en dessous - Don't modify anything below ---------------------
    ---------------------------------------------------------------------------------------*/
     
    if(!$go)
    {
    $connect= mysql_connect($host,$login,$pass);
    mysql_select_db($base, $connect);
    $result = mysql_list_tables ($base);
      $i = 0;
      while ($i < mysql_num_rows($result)) {
        $tb_names[$i] = mysql_tablename ($result, $i);
        if ($tb_names[$i]=="mcpass_tbl") $table=1;
        $i++;
      }
     
       if ($table==1)
       {
       $install= 'Running';
       }
    }
     
    if((isset($SubInst))&&($b==md5($base)))
    {
             $connect= mysql_connect($host,$login,$pass);
             mysql_select_db($base, $connect);
             $query="DROP TABLE IF EXISTS mcpass_tbl;";
             mysql_query($query);
             $query="CREATE TABLE mcpass_tbl (
             user varchar(20) NOT NULL default '',
             pwd varchar(20) NOT NULL default '',
             KEY user (user)
             ) TYPE=MyISAM;";
             mysql_query($query);
     
             $query="insert into mcpass_tbl values('$user', '$pwd')";
             mysql_query($query, $connect);
     
             $query="select * from mcpass_tbl";
             $res=mysql_query($query);
             $aff=mysql_fetch_array($res);
    }
     
     
    function mcPassCookie ($user,$pwd)
    {
    SetCookie("mcPass", "$user:$pwd");
    }
     
     
             if(isset($submit))
             {
             $connect= mysql_connect($host,$login,$pass);
             mysql_select_db($base, $connect);
             $query="select * from mcpass_tbl where user='$user'";
             $res=mysql_query($query);
             $verif=mysql_fetch_array($res);
     
                     if($pwd==$verif[pwd] && mysql_num_rows($res)!=0)  
                     {
                     mcPassCookie($user,$pwd);
                     ?>
                     <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript">
                     document.location.replace("<? echo $go.''; ?>");
                     </script>
                     <?
                     }
                     elseif (mysql_num_rows($res)==0)  $Err1=$lErrLog;
                     else                              $Err2=$lErrPass;
             }
     
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>Acces Directeur </title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <META HTTP-EQUIV="Expires" CONTENT="Fri, Jan 01 1900 00:00:00 GMT">
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <style type="text/css">
    <!--
    a:actif {  font-family: Verdana; color: black; text-decoration: none}
    a:link {  font-family: Verdana; color: black; text-decoration: none}
    a:visited {  font-family: Verdana; color: black; text-decoration: none}
    a:hover {  font-family: Verdana; color: white; text-decoration: none}
    -&nbsp;
    </style>
    </head>
    <body bgcolor="#C0C0C0" text="black">
    <p align="right"><font face="verdana" size="5" color="black">Accès Directeur </a>
     <?
     if((!$go)&&(!$install))   echo ' - Set Up';
     if ((!$go)&&(isset($install)))
     {
     echo ' is running.</font></p><hr>';
     echo '<p align="right"><a href="http://www.lesite.com"><b>OK</b></a></p>';
     echo '</body></html>';
     exit();
     }
     ?>
     </font>
    </p><hr>
     
    <form action="mcPass.php" method="get">
      <table align="right">
        <tr>
          <td align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>
          <?
          if(isset($Err1))
          {
          echo '<font color="red" size="2" face="verdana"><b>'.$Err1.'! </b></font>';
          }
          echo $lLogin;
          ?>
           : </b></font>
          </td>
          <td>
          <?
          if (isset($aff[0])) echo '<font color="red" size="2" face="verdana"><b>'.$aff[0].'</b></font>';
          else echo '<input type="text" name="user" value="'.$user.'">';
          ?>
          </td>
        </tr>
        <tr>
          <td align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><b>
          <?
     
          if(isset($Err2))
          {
          echo '<font color="red" size="2" face="Verdana"><b>'.$Err2.'! </b></font>';
          }
          echo $lPass;
          ?>
           :</b></font>
          </td>
          <td>
          <?
          if (isset($aff[1])) echo '<font color="red" size="2" face="verdana"><b>'.$aff[1].'</b></font>';
          else echo '<input type="password" name="pwd">';
          ?>
          </td>
        </tr>
        <tr>
          <td>&nbsp;
          </td>
          <td>
            <?
            if((!$go)&&(!$SubInst))
            {
            echo '<input type="submit" name="SubInst" value="'.$lValider.'">';
            echo '<input type="hidden" name="b" value="'.md5($base).'">';
            }
            elseif(isset($SubInst)) echo '<a href="http://'.$HTTP_HOST.'"><b>OK</b></a>';
            else
            {
            echo '<input type="submit" name="submit" value="'.$lValider.'">';
            echo '<input type="hidden" name="go" value="'.$go.'">';
            }
            ?>
          </td>
         </tr>
      </table>
     
    </form>
     
    </body>
    </html>

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Oui c'est possible mais ça dépend de votre configuration actuelle :
    • Les balises courtes ne sont pas conseillées (<?) => <?php
    • $HTTP_COOKIE_VARS['X'] est devenu $_COOKIE['X']
    • $HTTP_HOST ne fontionne plus si register_globals est à Off ($_SERVER['HTTP_HOST'])
    • Toutes ces erreurs devraient apparaître avec error_reporting fixé à E_ALL

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/06/2006, 13h56
  2. [PHP-JS] Menu déroulant avec proposition de login
    Par xender dans le forum Langage
    Réponses: 1
    Dernier message: 16/05/2006, 14h08
  3. [Sécurité] Crypter un mot de passe UNIX avec PHP
    Par dom78 dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2006, 19h28
  4. Importation d'un fichier xml vers une BD mysql avec php
    Par naima2005 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 28/04/2006, 15h23

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