cs_DL21
Messages postés2Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention22 février 2009
-
22 févr. 2009 à 08:51
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 2013
-
22 févr. 2009 à 12:04
Bonjour.
J'ai ce code dans l'index.php de ma partie admin :
<?php require("../header.php");
if (isset($_SESSION['pseudo']))
{
include("../start.php");
$requete = mysql_query("SELECT * FROM membres WHERE membre='".$_SESSION['pseudo']."'") or die (mysql_error());
$donnees = mysql_fetch_assoc($requete);
if ($donnees['acces'] > 1)
{
echo "Choisissez ce que vous voulez administrer :
";
}
else
{
echo "Accès non autorisé.";
}
}
else
{
echo "Merci de vous connecter.";
} ?>
Comme vous pouvez le voir, j'utilise un systeme de "levels", où 1 Membre, 2 Modo, 3 = Administrateur, 4 = Webmaster.
Le problème, c'est que le reste de la partie admin est accessible a tout le monde, seul index.php est protégé. Comment faire pour appliquer ce code sur toutes les pages de l'admin ?
Merci d'avance.
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 22 févr. 2009 à 10:14
Salut,
«Comment faire pour appliquer ce code sur toutes les pages de l'admin ?» Tu le met dans un fichier php et tu fait un include sur toutes les pages d'administration.
Au passage, il se passe quoi si je m'inscrit sur ton site avec le pseudo suivant ? :
toto' OR '1'= '1
(enfin, en échapant les quotes si besoin)
Si tu n'as pas filtré de manière drastique les pseudos a l'inscription je vais avoir accès a toutes les pages d'administration vu mon pseudo. En effet, regarde la requête SQL que ça av envoyer :
"SELECT * FROM membres WHERE membre='".$_SESSION['pseudo']."'"
Devient :
SELECT * FROM membres WHERE membre=' toto' OR '1'='1 '
membre ='toto' sera toujours faux
cs_DL21
Messages postés2Date d'inscriptionmardi 30 septembre 2008StatutMembreDernière intervention22 février 2009 22 févr. 2009 à 10:28
Certes, mais comment utiliser include dans mon cas ?
echo "Choisissez ce que vous voulez administrer :
";
c'est censé etre ce qui s'affiche, je ne vais tout de meme pas faire deux autres fichiers contenant
<?php require("../header.php");
if (isset($_SESSION['pseudo']))
{
include("../start.php");
$requete = mysql_query("SELECT * FROM membres WHERE membre='".$_SESSION['pseudo']."'") or die (mysql_error());
$donnees = mysql_fetch_assoc($requete);
if ($donnees['acces'] > 1)
{
et
}
else
{
echo "Accès non autorisé.";
}
}
else
{
echo "Merci de vous connecter.";
} ?>
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 22 févr. 2009 à 12:04
Un petit exit() si l'utilisateur n'a pas le droit de visualiser la page et c'est bon :) Comme ça ça te permet de tout gérer au dessus sans avoir plein de if sur toute la longueur de la page.