Maison > base de données > tutoriel mysql > `mysql_real_escape_string()` est-il vraiment défectueux ou simplement incompris ?

`mysql_real_escape_string()` est-il vraiment défectueux ou simplement incompris ?

Mary-Kate Olsen
Libérer: 2024-12-04 07:15:17
original
168 Les gens l'ont consulté

Is `mysql_real_escape_string()` Really Flawed, or Just Misunderstood?

Mysql_real_escape_string() est-il fatal ?

Malgré les allégations de manque de fiabilité, mysql_real_escape_string() reste un outil précieux pour créer vos propres instructions préparées. . Voici un aperçu de ses fonctionnalités et comment l'utiliser efficacement.

mysql_real_escape_string() expliqué

La documentation de l'API MySQL C indique : "Si vous devez modifier le caractère ensemble de la connexion, vous devez utiliser la fonction mysql_set_character_set() plutôt que d'exécuter un SET NAMES (ou SET CHARACTER SET) déclaration."

Cela signifie que pour utiliser correctement mysql_real_escape_string(), vous devez utiliser mysql_set_charset(). mysql_set_charset() de PHP reflète mysql_set_character_set() de MySQL.

Proof Code

<?php
$mysqli = new mysqli("localhost", "username", "password", "database");

// Set the character set using mysql_set_charset()
$mysqli->set_charset("utf8mb4");

// Prepared statement using mysql_real_escape_string()
$stmt = $mysqli->prepare("SELECT * FROM users WHERE username = ?");
$stmt->bind_param('s', mysql_real_escape_string($_GET['username']));
$stmt->execute();
?>
Copier après la connexion

Dans cet exemple, mysql_set_charset() garantit que la connexion utilise le jeu de caractères utf8mb4. Cela permet à mysql_real_escape_string() de gérer correctement les caractères qui pourraient autrement être vulnérables à l'injection SQL.

Conclusion

Bien qu'il soit important de comprendre les limites de mysql_real_escape_string(), en utilisant en conjonction avec mysql_set_charset() vous permet de créer efficacement vos propres instructions préparées. En suivant ces étapes, vous pouvez atténuer les risques d'injection SQL et maintenir la sécurité de vos applications.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal