NodeJS interrogeant MySQL avec des chaînes JavaScript
Lorsque vous tentez de transmettre des chaînes JavaScript contenant des adresses e-mail aux serveurs NodeJS pour les requêtes de base de données MySQL, les développeurs peuvent rencontrer difficultés dues à la présence de caractères spéciaux. Pour garantir une bonne gestion de ces chaînes, il est crucial de les adapter pour la compatibilité SQL.
En PHP, la fonction mysql_real_escape_string() apporte une solution en ajoutant des barres obliques inverses avant des caractères spécifiques tels que x00, n, r, , ', " et x1a. Cela évite que ces caractères ne provoquent des problèmes dans les requêtes SQL.
Pour NodeJS, une fonctionnalité similaire peut être implémentée comme suit :
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; } }); }
Cette fonction remplace les caractères spéciaux par des versions échappées, garantissant la compatibilité avec les requêtes SQL. Notez que cette solution échappe également aux tabulations, aux espaces arrière et aux caractères « % », ce qui la rend également adaptée aux requêtes LIKE. .
Pour plus d'informations sur l'échappement de chaîne SQL, reportez-vous à la discussion sur [OWASP](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload).
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!