首頁 >資料庫 >mysql教程 >如何在 Node.js 中使用 JavaScript 字串安全地查詢 MySQL?

如何在 Node.js 中使用 JavaScript 字串安全地查詢 MySQL?

Patricia Arquette
Patricia Arquette原創
2025-01-03 19:13:42953瀏覽

How Can I Safely Query MySQL with JavaScript Strings in Node.js?

NodeJS 使用JavaScript 字串查詢MySQL

當嘗試將包含電子郵件位址的JavaScript 字串傳遞到NodeJS 查詢伺服器進行MySQL 資料庫時,開發人員可能會遇到由於特殊字元的存在而造成的困難。為了確保正確處理這些字串,調整它們以實現 SQL 相容性至關重要。

在 PHP 中,函數 mysql_real_escape_string() 提供了一種解決方案,即在特定字元(例如 x00、n、r、)之前添加反斜線。 '、" 和x1a。這可以防止這些字元在SQL 查詢中引起問題。

對於NodeJS,可以實現類似的功能:如下:

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;
        }
    });
}

此函數用轉義版本取代特殊字符,確保與SQL 查詢的兼容性。 .

有關 SQL 字串轉義的更多信息,請參閱以下討論: [OWASP](https://owasp.org/www-community/vulnerability/Unrestricted_File_Upload)。

以上是如何在 Node.js 中使用 JavaScript 字串安全地查詢 MySQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn