Page 1 sur 1

Sessions pour section administrateur

Posté : 15 févr. 2005, 20:51
par pangel
Bonjour !
Je suis en train de modifier un site afin de lui ajouter une partie administrateur. Sur chaque page affichée, le script regardera si l'utilisateur est ici en tant qu'administrateur ou sans statut particulier, et en fonction de cela lui fournira des options de navigations différentes.

Afin d'identifier un utilisateur comme administrateur et qu'il conserve son statut pendant la navigation sur le site, il faut passer par un formulaire qui envoie des données à un script.php externe. Celui-ci vérifie que les informations envoyées sont correctes - sachant qu'un autre script vérifie que les chaines qui lui sont envoyées sont sans espaces, sans caractères numériques et de 18 caractères au maximum :

Code : Tout sélectionner

if(!(isset($_POST['usr'])) || $_POST['usr']=='' || $_POST['wrd']=='') die('[Message derreur]''); if(!(ereg("^[a-zA-Z]{1,18}$",$_POST['usr'])) || !(ereg("^[a-zA-Z0-9]{1,18}$",$_POST['wrd']))) die ('[Message derreur]''); chkUsr($_POST['usr'],md5($_POST['wrd']));

Code : Tout sélectionner

function chkUsr($log,$swd) { global $serv,$login,$pass,$usrtable,$db,$footer; $connect = mysql_connect($serv, $login, $pass); if (!($connect)) { die('Impossible de se connecter à la base de données'); } else { mysql_select_db($db,$connect); } $req = mysql_query('SELECT swd FROM '.$usrtable.' WHERE nom=\''.$log.'\''); if (!($req)) die('Il n\'existe pas d\'utilisateur avec ce nom. Veuillez réessayer.'.$footer); $cur = mysql_fetch_assoc($req); if ($cur['swd']!=$swd) die('Désolé, le mot de passe est incorrect.'.$footer); //Ici $_SESSION['logged']=TRUE, par exemple }
Ensuite, à chaque fois qu'un élément réservé à l'administrateur est susceptible d'être affiché, je demande simplement au serveur si $_SESSION['logged'] existe et a pour valeur 'TRUE".

Malheureusement j'ai peur que cette méthode ne soit pas sûre et qu'il soit simple de la contourner. De plus je ne suis pas certain de la qualité du code dans la fonction chkUsr (en haut).

Merci pour votre aide !

Posté : 26 nov. 2008, 15:33
par simoh
il sera plus facile de protéger ton dossier admin par un .htaccess