Bonjour,
je souhaite protéger mon site contre les injections sql et j'ai regardé cette page pour comprendre le fonctionnement.
http://www.linux-pour-lesnuls.com/injection.php
Je reprends les exemples de ce site:
	
	mysql_query("SELECT * FROM users WHERE utilisateur = '$login' AND motdepasse = '$password'");
 si dans le champ correspondant au login on met:
la requete devient:
	
	mysql_query("SELECT * FROM users WHERE utilisateur = '' OR 1=1"); //' AND motdepasse = 'password'");
 password étant le contenu de la variable $password.
Pourtant quand je le fais, le server mysql interprete la requete ainsi:
	
	SELECT * FROM users WHERE utilisateur = '' OR 1=1"); //' AND motdepasse = 'password'
 
	
		
			
			
				1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL 
server version for the right syntax to use near '"); //' AND motdepasse = 'password'' at line 1
			
		
 
	 
 Le probleme c'est que mysql tente d'interpreter "); // alors que c'est à apache de le faire.
Pourquoi le server mysql ne l'interprete-t-il pas ainsi?
	
	SELECT * FROM users WHERE utilisateur = '' OR 1=1
 
Merci pour vos explications.
Cassy
[edit]merci julp pour avoir réediter mon post...j'y penserais la prochaine fois.
effectivement c'est plus clair bien qu'il y ait encore aucune reponse  [edit]
[edit]
						
					
Partager