Heim > Datenbank > MySQL-Tutorial > Wie kann ich JavaScript-Strings für MySQL-Abfragen sicher maskieren?

Wie kann ich JavaScript-Strings für MySQL-Abfragen sicher maskieren?

DDD
Freigeben: 2025-01-02 18:50:38
Original
471 Leute haben es durchsucht

How to Safely Escape JavaScript Strings for MySQL Queries?

JavaScript-Strings MySQL-freundlich machen

Beim Versuch, einen JavaScript-String mit einer E-Mail-Adresse an einen NodeJS-Server zur Abfrageausführung in einem zu übergeben MySQL-Datenbank, Benutzer können auf Probleme stoßen. Während normaler Text wie Benutzernamen problemlos verarbeitet wird, stoßen E-Mail-Adressen auf Schwierigkeiten aufgrund von Sonderzeichen, die aus Gründen der SQL-Kompatibilität möglicherweise Escapezeichen erfordern.

Um dieses Problem zu beheben, wird nach einer Alternative zur Escape-Funktion gesucht: Paralleling die Funktionalität von PHPs mysql_real_escape_string(). Diese Funktion schützt vor SQL-Injections, indem sie bestimmte Zeichen maskiert.

Eine JavaScript-Implementierung von mysql_real_escape_string() ist überraschend einfach, wie aus der bereitgestellten Dokumentation hervorgeht. Hier ist die Implementierung:

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

Beachten Sie, dass diese Implementierung über das PHP-Original hinausgeht, indem sie zusätzliche Zeichen wie Tabulatoren, Rücktasten und „%“ maskiert, sodass sie auch für LIKE-Abfragen geeignet ist.

Obwohl mysql_real_escape_string() in seinem PHP-Gegenstück zeichensatzbewusst ist, bietet diese Funktion in der JavaScript-Implementierung Vorteile unklar.

Weitere Diskussionen zu diesem Thema finden Sie unter dem angegebenen Link als Referenz.

Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Strings für MySQL-Abfragen sicher maskieren?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage