rabbouba1
Messages postés9Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 6 juin 2010
-
3 juin 2010 à 12:17
rabbouba1
Messages postés9Date d'inscriptionjeudi 5 avril 2007StatutMembreDernière intervention 6 juin 2010
-
3 juin 2010 à 14:34
salut à tous, je suis débutante en php et j'essaye de faire un formulaire d'authentification mais j'ai rencontré un souci:
après enregistrement du login et du mot de passe dans une base de donnée MySQL on s'authentifie
code d'authentification
<?php
// Definition des constantes et variables
//Connection à mysql et sélection de la base de données
$connection = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("site", $connection) or die(mysql_error());
if (empty($_POST['user']))
{
die ("ERREUR: Entrez un nom d'utilisateur!");
}
// on vérifie que le pass n'est pas vide !!
elseif (empty($_POST['mdp']))
{
die ("ERREUR: Veuillez entrer un mot de passe!");
}
//Préparation de la requête
$query = ("SELECT * FROM inscription
WHERE nom='".$_POST['user']."'
AND mdp='".md5($_POST['mdp'])."'")
or die(mysql_error());
//exécution de la requête et récupération du nombre de résultats
$result = mysql_query($query, $connection) or die ("Error in query: $query. " . mysql_error());
$data = (mysql_fetch_array($result) );
// Regarde les valeurs retournees par la base
if (mysql_num_rows($result) == 1)
{
// si une ligne est retournee,
// l'authentification est bonne
// crée le cookie avec le nom d'utilisateur et la session
session_start();
$_SESSION['user'] = $data['user'];
setcookie("user", $_POST['user']);
// Sont-ils les mêmes que les constantes ?
//S'il y a exactement un résultat, l'utilisateur est authentifié, sinon, on l'empêche d'entrer
echo "Vous êtes connecté!";
}
else
{
// sinon et bien qqch a mal fonctionné ! authentification impossible
echo "ERREUR: Login ou Mot de passe incorrect!";
}
?>
Mon problème c'est toujours le login ou mot de passe incorrect,,
s'il vous j'aimerai savoir comment corriger ça
et merci d'avance :)
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 3 juin 2010 à 13:53
Salut,
sécurisé
Non ce n'est pas du tout sécurisé. Regarde donc ce qu'il se passe si je rentre le login suivant (et n'importe quoi comme mot de passe) :
toto' OR 42=42 -- KTHXBYE
Réponse pour ceux qui ont la flemme de tester : je me suis authentifié sans même avoir de compte. Merci les injections de SQL Pour info c'est le seconde erreur de programmation la plus dangereuse d'après le classement CWE du MITRE.