Salut all,
Je me pose la question si l'utilisation de requete prepare empeche/parre toutes injections SQL ?
(par prepare j'entends $mysqli->prepare ou mysqli_prepare)
Merci pour vos infos.
 Prepare et Injection SQL
 Prepare et Injection SQL
				
				
						
						
				Salut all,
Je me pose la question si l'utilisation de requete prepare empeche/parre toutes injections SQL ?
(par prepare j'entends $mysqli->prepare ou mysqli_prepare)
Merci pour vos infos.
 
 
				
				
						
						
				Ce n'est pas la fonction prepare() en elle même qui empêche les injections, c'est le fait de ne pas mettre les données potentiellement dangereuse dans la requête mais de les passer en paramètre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysqli_prepare('SELECT colonne FROM table WHERE colonne = ' . $_POST['id']); // pas bien
 
 
				
				
						
						
				Merci sabotage pour ta reponse, mais je parlais dans des conditions correctes d'utilisation
(genre l'exemple http://php.net/manual/fr/mysqli.prepare.php)
Donc si on fait comme l'exemple, ca empeche les injections ?
 
 
				
				
						
						
				Avec Mysql, il vaut mieux aussi desactiver l'emulation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, FALSE);

 
 
				
				
						
						
				Bonjour,
il serait bon de lire la doc :
 
 
				
				
						
						
				Si j'ai tout compris (lol)
Pas glop, car utilisation du $_POST['id'] directement dans le prepare.
Code : Sélectionner tout - Visualiser dans une fenêtre à part mysqli_prepare('SELECT colonne FROM table WHERE colonne = ' . $_POST['id']);
Glop, car le $_POST['id'] est en dehors de la cmd sql.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
 
 
				
				
						
						
				D'accord, c'est affirmatif :
Mais pas très explicite pour autant.. Si votre application utilise exclusivement les requêtes préparées, vous pouvez être sûr qu'aucune injection SQL n'est possibl
Réceptionnons une variable pirate $_GET['cadeau']="DELETE 'everything' FROM 'la_totale' ".
Pourquoi le fait d'utiliser une requête préparée neutralise-t'il la valeur piégée de la variable $_GET['cadeau'] ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
Je ne me représente pas le truc.

 
 
				
				
						
						
				Essaye, pour voir...
Partager