Démystification des failles alléguées : exploration de la fiabilité de mysql_real_escape_string()
Malgré les affirmations selon lesquelles mysql_real_escape_string() présente des lacunes, les preuves suggèrent qu'il fournit des protection contre les vulnérabilités d'injection SQL lors de son utilisation de manière appropriée.
L'examen des soi-disant défauts révèle qu'ils proviennent généralement d'une utilisation inappropriée ou d'informations obsolètes. Comme l'indique explicitement la documentation de l'API MySQL C, il est crucial de définir le jeu de caractères à l'aide des instructions mysql_set_character_set() plutôt que des instructions SET NAMES ou SET CHARACTER SET. Ces dernières options n'affectent pas le jeu de caractères utilisé par mysql_real_escape_string().
mysql_set_charset() de PHP sert de contrepartie à mysql_set_character_set() de MySQL. En l'utilisant pour modifier l'encodage, les développeurs peuvent garantir la compatibilité et éviter les problèmes potentiels.
Exemple de code :
<?php $mysqli = new mysqli('host', 'user', 'password', 'database'); $mysqli->set_charset('utf8mb4'); // Set utf8mb4 encoding // Example usage of mysql_real_escape_string() $escaped_string = mysql_real_escape_string($mysqli->connect_errno, $_POST['username']);
Cette approche définit efficacement le jeu de caractères et échappe correctement aux entrées de l'utilisateur à l'aide de mysql_real_escape_string( ), atténuant le risque d'attaques par injection SQL.
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!