Maison >base de données >tutoriel mysql >`mysql_real_escape_string()` est-il toujours sécurisé contre l'injection SQL ?
mysql_real_escape_string() est-il une fonction cassée ?
Des inquiétudes ont été soulevées quant à l'efficacité de mysql_real_escape_string() pour atténuer les vulnérabilités d'injection SQL, malgré bon usage. Les sceptiques citent des articles désuets comme preuve de ses défauts.
Mysql_real_escape_string() peut-il toujours être utilisé ?
Pour répondre à cette question, nous examinons la documentation de l'API MySQL C pour mysql_real_escape_string():
"Si vous devez modifier le jeu de caractères de la connexion, utilisez mysql_set_character_set() au lieu d'exécuter SET NAMES. la documentation, mysql_set_character_set() affecte le jeu de caractères utilisé par mysql_real_escape_string(), contrairement à SET NAMES. Par conséquent, vous devez utiliser mysql_set_charset() pour modifier l'encodage dans les applications PHP.
Conclusion :
mysql_real_escape_string()Bien que mysql_real_escape_string() ne soit pas complètement cassé, il est impératif de utilisez-le en conjonction avec mysql_set_character_set() pour garantir une gestion correcte du jeu de caractères et empêcher une éventuelle injection SQL vulnérabilités.
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!