NodeJS fragt MySQL mit JavaScript-Strings ab
Beim Versuch, JavaScript-Strings mit E-Mail-Adressen an NodeJS-Server für MySQL-Datenbankabfragen zu übergeben, kann es zu Problemen kommen Schwierigkeiten aufgrund der Anwesenheit von Sonderzeichen. Um eine ordnungsgemäße Handhabung dieser Zeichenfolgen sicherzustellen, ist es wichtig, sie für die SQL-Kompatibilität anzupassen.
In PHP bietet die Funktion mysql_real_escape_string() eine Lösung, indem sie Backslashes vor bestimmten Zeichen wie x00, n, r, ... einfügt. ', " und x1a. Dies verhindert, dass diese Zeichen Probleme in SQL-Abfragen verursachen.
Für NodeJS kann eine ähnliche Funktionalität implementiert werden wie folgt:
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; } }); }
Diese Funktion ersetzt Sonderzeichen durch maskierte Versionen und stellt so die Kompatibilität mit SQL-Abfragen sicher. Beachten Sie, dass diese Lösung auch Tabulatorzeichen, Rücktasten und „%“-Zeichen maskiert, sodass sie auch für LIKE-Abfragen geeignet ist .
Weitere Informationen zum SQL-String-Escape finden Sie in der Diskussion unter [OWASP](https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload).
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL sicher mit JavaScript-Strings in Node.js abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!