Prévention des injections SQL avec PHP MySQLI
Pour éviter les injections SQL lors de l'utilisation de PHP MySQLI, il est crucial de sécuriser toutes les variables impliquées dans votre SQL déclarations. Cela inclut les requêtes de lecture et d'écriture.
Quand utiliser mysqli_real_escape_string()
Bien que mysqli_real_escape_string() soit un outil utile, il est insuffisant pour se protéger contre l'injection SQL. Il ne doit être utilisé que comme mesure temporaire jusqu'à ce que vous implémentiez un paramétrage approprié.
Paramétrage approprié
La méthode la plus efficace pour empêcher l'injection SQL consiste à utiliser des requêtes paramétrées. Cela implique la création d'une instruction préparée qui inclut des espaces réservés pour les valeurs des paramètres. Ces valeurs sont ensuite liées aux espaces réservés avant d'exécuter la requête.
Par exemple :
$stmt = $mysqli->prepare("SELECT col1 FROM t1 WHERE col2 = ?"); $stmt->bind_param("s", $col2_arg); $stmt->execute();
Importance des requêtes paramétrées
Les requêtes paramétrées empêchent injection car ils séparent l’instruction SQL des arguments. Cela empêche que des arguments malveillants soient interprétés comme faisant partie de la requête.
Mesures de sécurité supplémentaires
En plus d'un paramétrage approprié, envisagez de mettre en œuvre les mesures de sécurité suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!