Maison >développement back-end >tutoriel php >mysql_real_escape_string offre-t-il une protection suffisante contre l'injection SQL ?
Mysql_real_escape_string peut-il nettoyer en toute sécurité les entrées utilisateur ?
Préoccupés par l'injection SQL, les développeurs utilisent souvent mysql_real_escape_string pour nettoyer les entrées utilisateur. Cependant, son efficacité soulève des questions quant à sa fiabilité à elle seule.
Limites de mysql_real_escape_string
Bien que mysql_real_escape_string soit un utilitaire utile, il a des limites :
Une approche plus robuste : déclarations préparées
Pour améliorer la sécurité, les développeurs recommandent d'utiliser des déclarations préparées. Cette approche exploite des espaces réservés pour séparer les données utilisateur de la requête SQL, la rendant ainsi insensible à la falsification des entrées. Voici un exemple :
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)"); $stmt->bindParam(1, $name); $stmt->bindParam(2, $value);
Les instructions préparées offrent plusieurs avantages :
Supplémentaires Sauvegardes
Outre les déclarations préparées, pensez à utiliser :
Conclusion
Pour une sécurité optimale, mysql_real_escape_string seul n'est pas adéquat. Incorporez plutôt des instructions préparées comme principale protection contre l’injection SQL. De plus, envisagez d'utiliser HTMLPurifier et une validation stricte des entrées pour une approche complète du nettoyage des entrées utilisateur.
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!