Heim > Datenbank > MySQL-Tutorial > Wie kann ich JavaScript-Strings sicher in SQL-Abfragen in Node.js einfügen, um SQL-Injection zu verhindern?

Wie kann ich JavaScript-Strings sicher in SQL-Abfragen in Node.js einfügen, um SQL-Injection zu verhindern?

Mary-Kate Olsen
Freigeben: 2025-01-01 07:52:12
Original
153 Leute haben es durchsucht

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

Sichern von JavaScript-Zeichenfolgen für SQL-Abfragen in NodeJS

Bei der Übergabe von vom Benutzer bereitgestellten Zeichenfolgen an NodeJS zum Einfügen in die SQL-Datenbank ist es wichtig, SQL zu verhindern Sicherheitslücken bei der Injektion. Für einfache Daten wie Benutzernamen kann die normale Textverarbeitung ausreichen, E-Mail-Adressen erfordern jedoch besondere Sorgfalt. In diesem Artikel wird eine Lösung zur Verbesserung der SQL-Freundlichkeit von JavaScript-Strings untersucht.

Emulation von MySQLs mysql_real_escape_string()

Die PHP-Funktion mysql_real_escape_string() bereinigt Strings für eine sichere SQL-Einfügung. Allerdings bietet NodeJS nativ kein natives Äquivalent an. Um dies zu beheben, kann eine benutzerdefinierte Funktion implementiert werden, die ihre Funktionalität nachahmt, indem sie Zeichen maskiert, die in SQL-Abfragen problematisch sind.

Der folgende Code stellt eine benutzerdefinierte mysql_real_escape_string()-Funktion für JavaScript bereit:

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;
        }
    });
}
Nach dem Login kopieren

Diese Funktion ersetzt angegebene Zeichen durch ihre maskierten Gegenstücke und macht die Zeichenfolge für die SQL-Einfügung sicher. Es erweitert sogar den Umfang der maskierten Zeichen auf Tabulatoren, Rückschritte und „%“, um die Kompatibilität mit LIKE-Abfragen sicherzustellen.

Hinweis zur Zeichensatzkenntnis

MySQLs mysql_real_escape_string () ist zeichensatzbewusst, die hier bereitgestellte benutzerdefinierte Funktion berücksichtigt jedoch keine Zeichensätze. Das breite Zeichen-Escapen stellt jedoch sicher, dass es in den meisten Szenarien zuverlässig funktioniert.

Weiterführende Literatur

Weitere Informationen und Diskussionen zur Verhinderung von SQL-Injection finden Sie auf der OWASP-Website .

Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Strings sicher in SQL-Abfragen in Node.js einfügen, um SQL-Injection zu verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage