Comprendre les injections SQL dans ADOdb et la sécurité générale des sites Web
Les injections SQL se produisent lorsque les entrées de l'utilisateur sont mal codées, compromettant potentiellement la sécurité du site Web. Bien qu'elles soient généralement associées aux méthodes POST et GET, de telles attaques peuvent se produire dans divers scénarios.
Exemples d'injections SQL
Considérez le code fourni avec la méthode POST :
$name = trim($_POST['username']); $mail = trim($_POST['email']); $password = trim($_POST['password ']); if ($errors == "false") { $sql = "INSERT INTO clients SET name='" . mysql_real_escape_string($name) . "', mail='" . mysql_real_escape_string($mail) . "', password='" . mysql_real_escape_string(sha1($password)) . "'"; $connection->execute($sql); }
Ce code utilise mysql_real_escape_string pour échapper aux entrées de l'utilisateur, empêchant ainsi les injections SQL.
Considérons maintenant le code avec la méthode GET :
$sql = "SELECT videoID FROM likes WHERE videoID = '" .mysql_real_escape_string($videoID). "' AND UID = '" .mysql_real_escape_string($userID). "' LIMIT 1"; $connection->execute($sql);
Encore une fois, mysql_real_escape_string est utilisé pour l'encodage, assurer la sécurité de ce code.
Dans les deux cas, l'utilisation de mysql_real_escape_string empêche les attaques en échappant correctement aux entrées de l'utilisateur. Cependant, il est essentiel de toujours traiter toute entrée non constante comme une entrée utilisateur afin d'atténuer les vulnérabilités potentielles.
Atténuation des injections SQL
Pour améliorer la sécurité et empêcher les injections SQL, il est Il est recommandé d'utiliser PDO avec des instructions préparées. Cette approche moderne garantit que les entrées des utilisateurs sont correctement codées, éliminant ainsi les failles de sécurité potentielles.
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!