WampServer

Apache, PHP, MySQL on Windows 

 
  • Accueil forum
  • Retour à WampServer
  • presentation
  • Download
  • Addons
  • Formations
  • Alter Way

 
Voir le sujet: Précédent•Suivant
Aller à : Liste des Forums•Liste des messages•Nouvelle discussion•Recherche•Connexion•Imprimer la vue
Gestion utilisateur
Envoyé par: Patou (---.ppp.tiscali.fr)
Date: 19 March 2005 à 11:35

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.

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: Romain Bourdon (---.fbx.proxad.net)
Date: 19 March 2005 à 11:58

suffit de lire la FAQ ;-)

Romain

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: xavier (---.net1.nerim.net)
Date: 22 March 2005 à 21:54

> 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.

Tout devrait marcher ensuite.

a+

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: MiMi (---.Lindthout.GoPlus.FastDSL.tiscali.be)
Date: 05 May 2005 à 18:32

Lorsque je suis cette procédure, voilà ce que s'affiche...

Utilisateur 'root'@'localhost'
L'utilisateur choisi n'existe pas dans la table des privilèges

D'où vient le problème?

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: Bistory (---.246.81.adsl.skynet.be)
Date: 05 May 2005 à 18:46

vérifie bien qu'il n'y a pas d'espace entre tous ces caractères 'root'@'localhost'
vérifie aussi que ton root est unique

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: Issam (213.150.160.---)
Date: 07 May 2005 à 19:48

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+

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: UNi (---.w83-198.abo.wanadoo.fr)
Date: 10 May 2005 à 10:06

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


Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: lepalois (83.173.76.---)
Date: 18 May 2005 à 02:04

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 ).

Vous aurez d'autres idées ? Merci...

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: charmat (193.251.169.---)
Date: 25 February 2006 à 17:15

bonjour,

Moi, j'ai un problème plus sérieu smiling smiley, je ne sais pas comment faire pour spécifie que le nom de la base de donnée pour l'utilsateur est "ROOT".

Quelqu'un peut m'aider ?

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: loic (---.w86-210.abo.wanadoo.fr)
Date: 26 February 2006 à 12:53

$cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['password'] = 'monmotdepasse'; // MySQL password (only needed with 'config' auth_type)

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: charmat (193.251.169.---)
Date: 27 February 2006 à 08:25

Bonjour,

est ce qu'il y a un script pour qu'un formulaire se connecte a une base de donnée ?

Options: Répondre•Citer ce Message
Re: Gestion utilisateur
Envoyé par: charmat (193.251.169.---)
Date: 27 February 2006 à 08:35

Bonjour,

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 :]

--------------------- Code Html ----------------------
<form method="post" action="inscription.php">
<table width="300" border="1" bordercolor="#000000" cellspacing="0" cellpadding="2">
<tr><td colspan="2">
<div align="center"><font size="2" face="Verdana">- Inscription. -</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>

<!-- Autres champs (nom,prénom,age,sexe,ville,tel,site...) --!>

<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>
------------------------------------------------------

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!=""winking smiley)&&(trim($pass!=""winking smiley))
{ $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 :]\"winking smiley</script>"winking smiley; }
?>
------------------------------------------------------
/!\ 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!=""winking smiley)&&(trim($pass!=""winking smiley))
{ $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 :]

--------------------- Code PHP -----------------------
<?
$login = str_replace("\"", "", $login);
$login = str_replace("'", "", $login);
$login = str_replace("<", "[", $login);
$login = str_replace(">", "]", $login);
$pass = str_replace("\"", "", $pass);
$pass = str_replace("'", "", $pass);
$pass = str_replace("<", "[", $pass);
$pass = str_replace(">", "]", $pass);
$pass = str_replace("+", "", $pass);
$login = htmlentities($login);
$pass = htmlentities($pass);
?>
------------------------------------------------------

Pour pouvoir utiliser ce "fichier filtre", ajoutez cette ligne au début du code de votre page : <? include("anticon.php"winking smiley; ?>

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]

Exemples :

--------------------- Code PHP -----------------------
<?
$Pass = "azerty";

// Encoder un mot de passe :
$EnMDP = base64_encode($Pass);

// Afficher le passe encodé :
echo $EnMDP; // Ce qui nous donne "YXplcnR5"

// Décoder le passe :
$DeMDP = base64_decode($EnMDP);

// Afficher le passe decodé :
echo $DeMDP; // Ce qui nous redonne "azerty"

if ($DeMDP!=$Pass) { echo "bah y a un pb qq pars là lol smiling smiley"; }
?>
------------------------------------------------------

Fonction mcrypt()

Syntaxe : mcrypt_METHODE(MCRYPT_ALGO, Clef, Message, MCRYPT_MOD);

NB : Remplacez "MCRYPT_MOD" par MCRYPT_ENCRYPT ou MCRYPT_DECRYPT.

Liste des modes de chiffrement de l'extension mcrypt :

MCRYPT_3DES
MCRYPT_ARCFOUR_IV (libmcrypt 2.4.x seulement)
MCRYPT_ARCFOUR (libmcrypt 2.4.x seulement)
MCRYPT_BLOWFISH
MCRYPT_CAST_128
MCRYPT_CAST_256
MCRYPT_CRYPT
MCRYPT_DES
MCRYPT_DES_COMPAT (libmcrypt 2.2.x seulement)
MCRYPT_ENIGMA (libmcrypt 2.4.x seulement, alias de MCRYPT_CRYPT)
MCRYPT_GOST
MCRYPT_IDEA (payant)
MCRYPT_LOKI97 (libmcrypt 2.4.x seulement)
MCRYPT_MARS (libmcrypt 2.4.x seulement, payant)
MCRYPT_PANAMA (libmcrypt 2.4.x seulement)
MCRYPT_RIJNDAEL_128 (libmcrypt 2.4.x seulement)
MCRYPT_RIJNDAEL_192 (libmcrypt 2.4.x seulement)
MCRYPT_RIJNDAEL_256 (libmcrypt 2.4.x seulement)
MCRYPT_RC2
MCRYPT_RC4 (libmcrypt 2.2.x seulement)
MCRYPT_RC6 (libmcrypt 2.4.x seulement)
MCRYPT_RC6_128 (libmcrypt 2.2.x seulement)
MCRYPT_RC6_192 (libmcrypt 2.2.x seulement)
MCRYPT_RC6_256 (libmcrypt 2.2.x seulement)
MCRYPT_SAFER64
MCRYPT_SAFER128
MCRYPT_SAFERPLUS (libmcrypt 2.4.x seulement)
MCRYPT_SERPENT (libmcrypt 2.4.x seulement)
MCRYPT_SERPENT_128 (libmcrypt 2.2.x seulement)
MCRYPT_SERPENT_192 (libmcrypt 2.2.x seulement)
MCRYPT_SERPENT_256 (libmcrypt 2.2.x seulement)
MCRYPT_SKIPJACK (libmcrypt 2.4.x seulement)
MCRYPT_TEAN (libmcrypt 2.2.x seulement)
MCRYPT_THREEWAY
MCRYPT_TRIPLEDES (libmcrypt 2.4.x seulement)
MCRYPT_TWOFISH (Pour les anciennes versions de mcrypt 2.x versions, ou mcrypt 2.4.x )
MCRYPT_TWOFISH128 (TWOFISHxxx sont disponibles avec les nouvelles versions de 2.x, mais pas dans les versions 2.4.x)
MCRYPT_TWOFISH192
MCRYPT_TWOFISH256
MCRYPT_WAKE (libmcrypt 2.4.x seulement)
MCRYPT_XTEA (libmcrypt 2.4.x seulement)

Liste des méthodes de l'extension mcrypt :

CBC : mcrypt_cbc (=cipher block chaining)
CFB : mcrypt_cfb (=cipher feedback)
ECB : mcrypt_ecb (=electronic codebook)
OFB : mcrypt_ofb (=output feedback)

Exemple :

--------------------- 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.

Plus plus d'infos : [dev.nexen.net]

(Source: Nexen)

0x0005 - Les cookies

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"winking smiley;

Exemple :

--------------------- Code PHP -----------------------
<?
$exp = "3600"; // 1 heure
setcookie("login","Maj",time()+$exp);
setcookie("pass","azerty",time()+$exp);
?>
------------------------------------------------------

/!\ 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 :

--------------------- Code PHP -----------------------
<?
session_start();
session_register("login"winking smiley;
session_register("pass"winking smiley;

// 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.

--------------------- Code PHP -----------------------
<?
session_start();
if(!session_is_registered("pass"winking smiley)
{ header('location: identification.php'); }
?>
------------------------------------------------------

Et pour détruire une session, nous allons créer une page nommée "logout.php" :

--------------------- Code PHP -----------------------
<?
session_start();
session_unset();
session_destroy();
echo "Session Détruite ! A+";
?>
------------------------------------------------------

0x0007 - Conclusion

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 :]

Documentations supplémentaires
PHP [dev.nexen.net]
MySQL [dev.nexen.net]
PhpMyAdmin [www.phpmyadmin.net]
Apache [httpd.apache.org]
Cookies [www.netscape.com]
[www.cookiecentral.com]
Securité [ouah.sysdoor.net]
XSS [www.cert.org]
[www.ifrance.com]
Base64 [www.php.net]
[www.php.net]
mcrypt [dev.nexen.net]
DES [www.aci.net]

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 supprimersmiling smiley ).

Options: Répondre•Citer ce Message


Aller à : Liste des Forums•Liste des messages•Recherche•Connexion
Désolé, seuls les utilisateurs connectés peuvent envoyer des messages dans ce forum.
Cliquer ici pour se connecter

design by jidePowered by Alter Way get firefoxget PHP