Salut je suis debutant et je voudrais savoir comment faire pour modifier mon user et mdp afin de ne plus avoir la phrase: "Votre fichier de configuration fait référence à l'utilisateur root sans mot de passe, ce qui correspond à la valeur par défaut de MySQL. Votre serveur MySQL est donc ouvert aux intrusions, et vous devriez corriger ce problème de sécurité." au démarrage de phpmyadmin. Je vous remercie par avance.
> Votre fichier de configuration fait référence à l'utilisateur root sans mot de > passe, ce qui correspond à la valeur par défaut de MySQL. Votre serveur MySQL est > donc ouvert aux intrusions, et vous devriez corriger ce problème de sécurité."
Ce warning est du au fait que WAMP utilise le paquet MySQL par défaut (sauf erreur). Donc effectivement l'utilisateur root à un mot de passe vide.
Pour lui affecter un mot de passe, il faut faire, dans phpmyadmin: - choisir " Privileges" - pour l'utilisateur root localhost cliquer sur l'image, à droite. - dans change password, mettre le mot de passe dans les 2 champs
Il faut ensuite configurer phpmyadmin pour qu'il utilise ce mot de passe, dans config.inc.php, renseigner $cfg['Servers'][$i]['password'] avec le mot de passe choisi dans l'étape précédente.
salut Ajouter un mot de passe pour l'utilisateur root ds phpadmin et ajouter le mot de passe en question ds le fichier de config:config.inc.php ds la ligne contenant :$cfg['Servers'][$i]['Ici vous mettez ton mot de passe '] bon travail a+
suffit d'allé modifier le mot de passe via l'interface phpMyAdmin dans la section priviléges et de reporter le mot de passe dans le fichier de confid de phpMyAdmin
Bonjour, Il m'arrive la même chose à savoir "L'utilisateur choisi n'existe pas dans la table des privilèges" que ce soit pour l'user root ou xxx que j'ai créer pour essai.
J'ai suivi scrupuleusement vos conseils ci-dessus mais à chaque fois c'est la même chose ( un seul root et mot de passe ).
$cfg['Servers'][$i]['user'] = 'root'; // MySQL user $cfg['Servers'][$i]['password'] = 'monmotdepasse'; // MySQL password (only needed with 'config' auth_type)
J'ai trouver ça sur Internet: ___________________________________________________________________ Créer un espace membre avec PHP
--- Sommaire --- 1. Introduction 2. Préparatifs 3. Sécurité 4. Cryptographie 5. Les Cookies 6. Les Sessions 7. Conclusion
0x0001 - Introduction
Vous avez un site web ouvert au public, mais cependant vous voulez protéger l'accès à certaines rubriques, ou bien proposer des services (gratuits ou payants) uniquement réservés aux membres de votre communauté ? Pas de problème ! Vous vous trouvez au bon endroit :]
Outils nécessaires :
PHP4 (www.php.net) MySQL (www.mysql.com) PhpMyAdmin (www.phpmyadmin.net)
NB : Je vous recommande vivement d'installer le serveur Apache sur votre machine pour tester vos scripts en local (www.apache.org)
0x0002 - Préparatifs
Étant donné que nous allons utiliser une base de donnée MySQL, je vous conseil dans un premier temps d'installer PhpMyAdmin pour vous aider à l'administrer.
Une fois PhpMyAdmin installé, commencez par créer la table qui contiendra les identifiants et les mots de passe de vos membres :
-------------------- Table MySQL --------------------- CREATE TABLE membres_tbl ( id int(3) NOT NULL auto_increment, Login varchar(30) NOT NULL, Pass varchar(30) NOT NULL, PRIMARY KEY (id) ); ------------------------------------------------------ Documentation : [www.mysql.com]
Ensuite, placez ce formulaire sur votre site pour que les visiteurs puissent créer leur compte et donc alimenter votre nouvelle table :]
Maintenant, nous allons écrire le code de la page "inscription.php" pour enregistrer les informations sur le futur membre dans notre table (membres_tbl)
--------------------- Code PHP ----------------------- <? if((trim($login!="")&&(trim($pass!="")) { $db = mysql_connect('localhost', 'root', ''); // A modifier ! mysql_select_db('mysql',$db); $sql = "INSERT INTO membres_tbl(id,Login,Pass) VALUES('','$login','$pass')"; mysql_query($sql) or die('Erreur SQL !'); mysql_close(); print("<script>alert(\"Bienvenue $login :]\"</script>" } ?> ------------------------------------------------------ /!\ N'utilisez pas ce code tel que, lisez la suite (partie sécurité)
Et enfin, utilisez ce formulaire, il permet à vos membres de s'identifier :
--------------------- Code Html ---------------------- <form method="post" action="identification.php"> <table width="300" border="1" bordercolor="#000000" cellspacing="0" cellpadding="2"> <tr><td colspan="2"> <div align="center"><font size="2" face="Verdana">- Identification -</font></div></td></tr> <tr><td width="150"><font size="2" face="Verdana">Identifiant :</font></td> <td width="150"><input type="text" name="login"></td></tr> <tr><td width="150"><font size="2" face="Verdana">Mot de passe :</font></td> <td width="150"><input type="password" name="pass"></td></tr> <tr><td colspan="2"><div align="right"> <input type="reset" name="Reset" value="Effacer"> <input type="submit" name="Go" value="Envoyer"></div> </td></tr> </table> </form> ------------------------------------------------------ NB : Ce formulaire ne vérifie pas si les informations données sont exactes; il renvoye uniquement les valeurs sur la page "identification.php".
Et pour finir, nous allons commencez à écrire le script de la page identification.php, pour vérifier si les données sont correctes :
--------------------- Code PHP ----------------------- <? if((trim($login!="")&&(trim($pass!="")) { $db = mysql_connect('localhost', 'root', ''); mysql_select_db('mysql',$db); $sql = "SELECT Pass,Login FROM membres_tbl WHERE Login='$login' AND Pass='$pass'"; $req = mysql_query($sql) or die('Erreur SQL !'); while($dt = mysql_fetch_array($req)) { if(($dt['Pass']=$pass)&&($dt['Login']=$login)) // OK! { // voir la suite } } mysql_close(); } ?> ------------------------------------------------------
0x0003 - Sécurité
Ici, je ne vais aborder qu'un seul problème de sécurité, bien qu'il en existe beaucoup d'autres plus ou moins préoccupant, pour plus d'infos je vous conseil de lire le tutos "Sécuriser ses scripts PHP" écrit par Medgi : [ouah.sysdoor.net]
Le Cross site Scripting
Le XSS (alias CSS (Cross site Scripting)) est une faille courante et banale qui peut prendre une grande ampleur selon l'endroit et le fonctionnement du site, pour vous donner une idée, on peut par exemple récupérer les cookies des visiteurs avec un JavaScript et une page PHP.
Pour éviter ce genre de faille, nous allons créer une page php nommé "anticon.php" qui se chargera de filtrer les caractères susceptibles d'être utilisés à des fins peu catholiques :]
Pour pouvoir utiliser ce "fichier filtre", ajoutez cette ligne au début du code de votre page : <? include("anticon.php" ?>
Pour plus d'infos sur le XSS je vous invite à lire ce tut écrit par mon ami frog-m@n : [www.ifrance.com] ou bien allez regarder ça : [www.cert.org]
0x0004 - Cryptographie
Si vous avez décidé d'utiliser les cookies, et que vous mettez des informations importantes dedans, comme un mot de passe, il est important d'utiliser la cryptographie pour eviter que vos visiteurs ne se fassent trop facilement piquer leur compte par des petits malins qui n'ont rien de mieux à faire :] La crypto est aussi essentielle si vos visiteurs vous fournissent des informations sensibles (n° de carte bancaire, coordonnées, etc)
Base de 64
Cet encodage est fait pour permettre aux informations binaires d'être manipulées par les systèmes qui ne gèrent pas correctement les 8 bits, comme par exemple, les corps de mail. Sinon, bien que ce soit un algorithme beaucoup utilisé, je trouve qu'il ne vaut rien coté sécurité et qu'il ne sert strictement a rien ! En effet, il suffi d'une demi seconde pour décrypter des données encodés en base de 64 !! Mais bon, je vais quand même vous montrer comment ça marche, à titre informatif :]
Nous allons utiliser les fonctions base64_encode() et base64_decode() Pour plus d'informations : [www.php.net] [www.php.net]
--------------------- Code PHP ----------------------- <? // Nous allons crypter un message et l'afficher $Clef = "blowfish c dla balle"; $MsgS = "RDV à 20h30 sur icq pour hacker la NASA"; $MsgE = mcrypt_ecb(MCRYPT_BLOWFISH, $Clef, $MsgS, MCRYPT_ENCRYPT); echo $MsgE; ?> ------------------------------------------------------
Les librairies libmcrypt sont disponibles sur ce ftp : [mcrypt.hellug.gr]
Pour plus d'infos, visitez la documentation annotée de Nexen : [dev.nexen.net]
DES (Data Encryption Standard)
Syntaxe : crypt(chaîne, grain de sel)
Méthodes :
CRYPT_STD_DES - DES Standard avec 2-octets de SALT CRYPT_EXT_DES - DES étendu avec 9-octets SALT CRYPT_MD5 - MD5 avec 12-octets SALT commençant à $1$ CRYPT_BLOWFISH - DES étendu avec 16-octets SALT commençant à $2$
NB : Il n'y a pas d'algorithme de décryptage, étant donné que la fonction crypt est injective.
Pas de théorie ici, que de la pratique ! Je ne vais donc pas vous expliquer ce qu'est un cookie ni son fonctionnement, cependant si vous voulez plus d'infos, je vous invite à visiter ce site qui est très complet : [www.cookiecentral.com] (Anglais).
Pour envoyer un cookie à vos visiteurs, nous allons utiliser la fonction setcookie(), la syntaxe est : setcookie("var","valeur","expiration"
/!\ Il faut placer ce code AVANT le code Html ! /!\ Le cookie ne sera utilisable qu'à partir de la prochaine page, ou au rafraichissement de la "page d'envoye".
Et pour réutiliser le cookie, essayez ce code :
--------------------- Code PHP ----------------------- <? $ID = $HTTP_COOKIE_VARS["login"]; $Mdp = $HTTP_COOKIE_VARS["pass"]; echo "Le mot de passe de ".$ID." est ".$Mdp; ?> ------------------------------------------------------
0x0006 - Les sessions
Bien que les variables de session puissent aussi être stockées dans un cookie, j'ai préférais séparer distinctement la rubrique "cookies" et "sessions" pour que vous compreniez mieux.
/!\ Les sessions ont étaient ajoutées qu'à partir de PHP4
Voici la liste non exhaustive des fonctions que nous allons utiliser :
session_start() Commencer une session session_start() Commencer une session session_register() Enregistrer une variable session_is_registered() Vérifier qu'une variable est bien enregistrée session_unset() Efface les variables enregistrées session_destroy() Détruit la session
Pour commencer une session, on enregistre l'identifiant et le mot de passe :
// Pour réutiliser une variable : $Nick = $HTTP_SESSION_VARS["login"]; echo "salut ".$Nick; ?> ------------------------------------------------------
Pour vérifier si votre visiteur est bien loggé, ajoutez ce code AU DÉBUT de la page que vous souhaitez protéger. Si il n'a pas montré patte blanche, on le redirige vers la page d'identification.
Bah voilà, ce tutoriel touche à sa fin... J'espère vraiment qu'il vous aura apporté quelque chose ! si toutefois vous avez encore une question, ou si j'ai fais une erreur, vous pouvez me contacter par mail ou sur MSN : majen@hotmail.com
PS : Ce tutoriel peut être sujet à des modifications... Éh oui, personne n'est parfait, surtout pas moi :]
Majen majen@hotmail.com --> il n'exite pas Le 12/05/02 ___________________________________________________________________
Est ce qu'il y a quelqu'un qui peut le voir et m'indiquer l'erreur ou bien un oublie de la part de l'auteur, car j'ai tester et ça ne marche pas.
Cordialement.
Message pour le webmaster : ___________________________________________________________________ Excuse moi monsieur le Webmaster, j'ai pas trouver autrement qu'a coller cette page sur votre forum pour qu'on m'aide sur mon problème, je sais que ça prend de la place, q'il vous plait, laisse cette page aumoin qu'on m'excpliquer et après ça, vous pouvais faire ce que vous voulez (le laisser pour quelqu'un d'autre qui le même problème ou bien le supprimer ).