Menyesuaikan String JavaScript untuk Pertanyaan MySQL dalam NodeJS
Memelihara integriti data yang dihantar daripada JavaScript kepada NodeJS dan seterusnya kepada MySQL adalah penting. Walaupun teks standard mungkin disepadukan dengan lancar, alamat e-mel memerlukan pendekatan khusus untuk dijadikan mesra SQL.
Fungsi mysql_real_escape_string() MySQL, direka bentuk untuk melindungi daripada kelemahan suntikan SQL, menyediakan rangka kerja yang berharga untuk menyediakan rentetan JavaScript. Kefungsian ini memastikan sisipan selamat aksara khas ( , x08, x09, x1a, n, r, ', ", , %) dengan menambahkan garis miring ke belakang.
Untuk meniru tingkah laku ini dalam JavaScript, anda boleh menggunakan tersuai fungsi:
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; } }); }
Menggunakan fungsi ini membolehkan anda melepaskan aksara khas dalam rentetan JavaScript dengan berkesan sebelum lulus mereka ke NodeJS untuk sisipan SQL, melindungi daripada kemungkinan serangan suntikan SQL Selain itu, sokongan lanjutan untuk melarikan diri tab, ruang belakang dan "%" meningkatkan keteguhan pertanyaan LIKE, selaras dengan garis panduan keselamatan OWASP.
Atas ialah kandungan terperinci Bagaimana untuk Melarikan diri dari String JavaScript dengan Selamat untuk Pertanyaan MySQL dalam NodeJS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!