Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memasukkan Rentetan JavaScript dengan Selamat ke dalam Pertanyaan SQL dalam Node.js untuk Mencegah Suntikan SQL?

Bagaimanakah Saya Boleh Memasukkan Rentetan JavaScript dengan Selamat ke dalam Pertanyaan SQL dalam Node.js untuk Mencegah Suntikan SQL?

Mary-Kate Olsen
Lepaskan: 2025-01-01 07:52:12
asal
152 orang telah melayarinya

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

Melindungi Rentetan JavaScript untuk Pertanyaan SQL dalam NodeJS

Apabila menghantar rentetan yang disediakan pengguna ke NodeJS untuk sisipan pangkalan data SQL, adalah penting untuk menghalang SQL kelemahan suntikan. Pengendalian teks biasa mungkin mencukupi untuk data mudah seperti nama pengguna, tetapi alamat e-mel memerlukan penjagaan khas. Artikel ini meneroka penyelesaian untuk meningkatkan kemesraan SQL bagi rentetan JavaScript.

Meniru mysql_real_escape_string() MySQL

Fungsi PHP mysql_real_escape_string() membersihkan rentetan untuk penyisipan SQL yang selamat. Walau bagaimanapun, NodeJS tidak menawarkan setara asli secara asli. Untuk membetulkan perkara ini, fungsi tersuai boleh dilaksanakan untuk meniru fungsinya dengan melepaskan aksara yang bermasalah dalam pertanyaan SQL.

Kod berikut menyediakan fungsi mysql_real_escape_string() tersuai untuk 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;
            default:
                return char;
        }
    });
}
Salin selepas log masuk

Fungsi ini menggantikan aksara tertentu dengan rakan sejawatannya yang terlepas, menjadikan rentetan selamat untuk sisipan SQL. Ia juga memanjangkan skop aksara yang dilepaskan untuk memasukkan tab, ruang belakang dan '%', memastikan keserasian dengan pertanyaan LIKE.

Nota tentang Kesedaran Set Aksara

MySQL's mysql_real_escape_string () adalah set-set-aksara, tetapi fungsi tersuai yang disediakan di sini tidak mengambil kira watak set. Walau bagaimanapun, wataknya yang luas melarikan diri memastikan ia berfungsi dengan pasti dalam kebanyakan senario.

Bacaan Lanjut

Untuk mendapatkan maklumat lanjut dan perbincangan tentang pencegahan suntikan SQL, rujuk tapak web OWASP .

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memasukkan Rentetan JavaScript dengan Selamat ke dalam Pertanyaan SQL dalam Node.js untuk Mencegah Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan