Maison >base de données >tutoriel mysql >Comment échapper en toute sécurité aux chaînes JavaScript pour les requêtes MySQL ?
Rendre les chaînes JavaScript compatibles avec MySQL
Lorsque vous tentez de transmettre une chaîne JavaScript contenant une adresse e-mail à un serveur NodeJS pour l'exécution d'une requête dans un Base de données MySQL, les utilisateurs peuvent rencontrer des problèmes. Alors que le texte normal, tel que les noms d'utilisateur, est traité sans complications, les adresses e-mail sont confrontées à des difficultés en raison de caractères spéciaux qui peuvent nécessiter un échappement pour des raisons de compatibilité SQL.
Pour résoudre ce problème, une alternative à la fonction d'échappement est recherchée, en parallèle la fonctionnalité de mysql_real_escape_string() de PHP. Cette fonction protège contre les injections SQL en échappant des caractères spécifiques.
Une implémentation JavaScript de mysql_real_escape_string() est étonnamment simple, comme observé dans la documentation fournie. Voici l'implémentation :
function mysql_real_escape_string(str) { return str.replace(/[\x08\x09\x1a\n\r"'\\%]/g, function (char) { switch (char) { case "": return "\0"; case "\x08": return "\b"; case "\x09": return "\t"; case "\x1a": return "\z"; case "\n": return "\n"; case "\r": return "\r"; case "\"": case "'": case "\": case "%": return "\" + char; // prepends a backslash to backslash, percent, // and double/single quotes default: return char; } }); }
Notez que cette implémentation va au-delà de l'original PHP en échappant des caractères supplémentaires, tels que les tabulations, les espaces arrière et « % », ce qui la rend également adaptée aux requêtes LIKE.
Bien que mysql_real_escape_string() soit compatible avec le jeu de caractères dans son homologue PHP, les avantages de cette fonctionnalité dans l'implémentation JavaScript sont pas clair.
Des discussions supplémentaires sur ce sujet peuvent être trouvées sur le lien fourni pour référence.
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!