Maison > base de données > tutoriel mysql > Comment puis-je insérer en toute sécurité des chaînes JavaScript dans des requêtes SQL dans Node.js pour empêcher l'injection SQL ?

Comment puis-je insérer en toute sécurité des chaînes JavaScript dans des requêtes SQL dans Node.js pour empêcher l'injection SQL ?

Mary-Kate Olsen
Libérer: 2025-01-01 07:52:12
original
153 Les gens l'ont consulté

How Can I Safely Insert JavaScript Strings into SQL Queries in Node.js to Prevent SQL Injection?

Sécurisation des chaînes JavaScript pour les requêtes SQL dans NodeJS

Lorsque vous transmettez des chaînes fournies par l'utilisateur à NodeJS pour l'insertion de bases de données SQL, il est crucial d'empêcher SQL vulnérabilités d’injection. Un traitement régulier du texte peut suffire pour des données simples telles que les noms d'utilisateur, mais les adresses e-mail nécessitent une attention particulière. Cet article explore une solution pour améliorer la convivialité SQL des chaînes JavaScript.

Émulation de mysql_real_escape_string() de MySQL

La fonction PHP mysql_real_escape_string() nettoie les chaînes pour une insertion SQL sécurisée. Cependant, NodeJS ne propose pas nativement d’équivalent natif. Pour remédier à cela, une fonction personnalisée peut être implémentée pour imiter sa fonctionnalité en échappant les caractères problématiques dans les requêtes SQL.

Le code suivant fournit une fonction mysql_real_escape_string() personnalisée pour JavaScript :

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;
            default:
                return char;
        }
    });
}
Copier après la connexion

Cette fonction remplace les caractères spécifiés par leurs homologues échappés, rendant la chaîne sûre pour l'insertion SQL. Il étend même la portée des caractères d'échappement pour inclure les tabulations, les espaces arrière et « % », garantissant ainsi la compatibilité avec les requêtes LIKE.

Remarque sur la prise en compte des jeux de caractères

mysql_real_escape_string de MySQL () prend en compte les jeux de caractères, mais la fonction personnalisée fournie ici ne prend pas en compte les jeux de caractères. Cependant, son échappement large garantit qu'il fonctionne de manière fiable dans la plupart des scénarios.

Lectures complémentaires

Pour plus d'informations et de discussions sur la prévention des injections SQL, reportez-vous au site Web de l'OWASP. .

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