首頁 >資料庫 >mysql教程 >如何安全地轉義 MySQL 查詢的 JavaScript 字串?

如何安全地轉義 MySQL 查詢的 JavaScript 字串?

DDD
DDD原創
2025-01-02 18:50:38465瀏覽

How to Safely Escape JavaScript Strings for MySQL Queries?

讓JavaScript 字串對MySQL 友善

嘗試將包含電子郵件地址的JavaScript 字串傳遞到NodeJS 伺服器以在NodeJS 中執行查詢時MySQL資料庫,使用者可能會遇到問題。雖然常規文字(例如使用者名稱)的處理並不複雜,但電子郵件地址由於可能需要轉義以實現 SQL 相容性的特殊字元而面臨困難。

為了解決這個問題,需要尋找轉義函數的替代方法,並行PHP 的 mysql_real_escape_string() 的功能。此函數透過轉義特定字元來防止 SQL 注入。

mysql_real_escape_string() 的 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; // prepends a backslash to backslash, percent,
                                   // and double/single quotes
            default:
                return char;
        }
    });
}

請注意,此實作超越了 PHP 原始版本,轉義了其他字符,例如製表符、退格鍵和“%”,使其也適合 LIKE 查詢。

雖然 mysql_real_escape_string() 在其 PHP 對應項中是字元集感知的,但此功能在 JavaScript 實作中的好處是不清楚。

有關此主題的進一步討論可以在提供的連結中找到以供參考。

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

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