首頁 > 資料庫 > mysql教程 > 如何在 Node.js 中安全地將 JavaScript 字串插入 SQL 查詢中以防止 SQL 注入?

如何在 Node.js 中安全地將 JavaScript 字串插入 SQL 查詢中以防止 SQL 注入?

Mary-Kate Olsen
發布: 2025-01-01 07:52:12
原創
157 人瀏覽過

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

保護NodeJS 中SQL 查詢的JavaScript 字串

將使用者提供的字串傳遞到NodeJS 進行SQL 資料庫插入時,防止SQL至關重要注入漏洞。常規文字處理可能足以處理使用者名稱等簡單數據,但電子郵件地址需要特別小心。本文探討了一種增強 JavaScript 字串的 SQL 友善性的解決方案。

模擬 MySQL 的 mysql_real_escape_string()

PHP 函數 mysql_real_escape_string() 清理字串以安全 SQL 插入。然而,NodeJS 本身並未提供本機等效項。為了解決這個問題,可以實作一個自訂函數,透過轉義 SQL 查詢中存在問題的字元來模仿其功能。

以下程式碼為JavaScript 提供了一個自訂mysql_real_escape_string() 函數:

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;
        }
    });
}
登入後複製

此函數將指定的字元替換為其轉義的對應字符,從而使字串對於SQL插入來說是安全的。它甚至擴展了轉義字元的範圍,包括製表符、退格鍵和“%”,確保與 LIKE 查詢的兼容性。

字元集感知注意事項

MySQL 的 mysql_real_escape_string () 是字元集感知的,但這裡提供的自訂函數不考慮字元集。然而,其廣泛的字元轉義確保了它在大多數情況下都能可靠地工作。

進一步閱讀

有關 SQL 注入預防的更多資訊和討論,請參閱 OWASP 網站.

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板