Bonjour,
étudiant en ecole d'informatique je dois réaliser un exposé sur les injections Sql.
Pour cela je réalise un petit site avec des exemples et un code volontairement bourrés de failles.

Je bloque sur la modification d'un champs passé dans l'url

Url : http://localhost/failles/mapage?login=membre

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<?php
// on se connecte à MySQL
$db = mysql_connect('localhost', 'root', ''); 
// on seléctionne la base
mysql_select_db('failles',$db); 
 
$login= $_GET['login'];
$count = 0;
$q = mysql_query("SELECT PrenomMembre,NomMembre FROM membre WHERE LoginMembre ='$login'");
 
        $result = mysql_fetch_assoc($q); //Ligne 69
        $PrenomMembre = $result["PrenomMembre"];
	$NomMembre = $result["NomMembre"];
 
	echo '<strong><span style="color: #FF0000">Prénom :  ' . $PrenomMembre .'</span></strong><br/>';
	echo '<strong><span style="color: #FF0000">Nom :  ' . $NomMembre .'</span></strong><br/>';					
?>
Si je souhaite mettre par exemple :
http://localhost/mapage?login=membre

il me retourne Prénom et Nom

Si je tente la faille
http://localhost/mapage?login=' UNION SELECT PasswordMembre FROM membre WHERE id=1

Je récupère l'erreur :
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given Ligne 69


Qu'est ce que je fais de mal ? ou il y a t-il quelques chose qui protège mon code contre mon grès ?

Merci