HervéRenault.fr

Logo de MariaDB

Injection de SQL, le danger en résumé

Extraits condensés de la CWE-89: Improper Neutralization of Special Elements used in an SQL Command

Il suffit de préparer ses requêtes pour l'éviter, avec mysqli::prepare ou mysqli_prepare ou PDO::prepare pour PHP. Sinon, quel est le risque avec ce genre de requête non-préparée SELECT * FROM utilisateurs WHERE nom = '$username' ?

En admettant qu'on met imprudemment dans la variable $username une valeur récupérée de la requête HTTP, non-filtrée par une regexp ou autre :

Bref, il faut toujours préparer ses requêtes de cette façon : SELECT * FROM utilisateurs WHERE nom = ?