Les injections SQL peuvent-elles se produire au-delà des requêtes POST et GET ?
Les injections SQL exploitent les vulnérabilités des applications Web qui nettoient de manière inadéquate les entrées des utilisateurs avant de les incorporer dans Requêtes SQL. Bien que les méthodes POST et GET soient des voies courantes pour cette attaque, les injections SQL peuvent également se produire par d'autres moyens.
Dans le code fourni, mysql_real_escape_string est utilisé pour coder les entrées utilisateur, atténuant ainsi le risque d'injection SQL. Cependant, la sécurité du code repose en grande partie sur l'application cohérente de cet encodage.
Examen de l'exemple de code
1. Méthode POST
L'exemple de code initialise les variables avec la saisie de l'utilisateur :
$name = trim($_POST['username']); $mail = trim($_POST['email']); $password = trim($_POST['password ']);
Avant de stocker les informations de l'utilisateur dans une base de données, elles sont correctement codées :
$sql = "INSERT INTO clients SET name='" . mysql_real_escape_string($name) . "', mail='" . mysql_real_escape_string($mail) . "', password='" . mysql_real_escape_string(sha1($password)) . "'";
2. Méthode GET
Les variables sont initialisées à partir de l'URL :
$videoID = trim($_GET['videoID']); $userID = trim($_GET['userID']);
Encore une fois, la requête SQL utilise l'encodage approprié :
$sql = "SELECT videoID FROM likes WHERE videoID = '" . mysql_real_escape_string($videoID) . "' AND UID = '" . mysql_real_escape_string($userID) . "' LIMIT 1";
Conclusion
Le code que vous avez fourni ne contient aucune vulnérabilité d'injection SQL, grâce à l'utilisation cohérente de mysql_real_escape_string pour encoder les entrées utilisateur. Il est impératif de noter que le codage doit être appliqué judicieusement à toutes les entrées utilisateur, quelle que soit leur source. Pour améliorer davantage la sécurité, envisagez d'adopter l'approche plus moderne consistant à utiliser PDO avec des instructions préparées.
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!