SQL escape/unescape merujuk kepada proses mencuci input teks supaya ia boleh dibenamkan dengan selamat dalam pernyataan SQL.
Meloloskan diri mengubah suai aksara khas (seperti petikan atau garis miring ke belakang) dengan cara yang menghalang ralat sintaks atau pelaksanaan kod berniat jahat.
Unescaping menukarkan aksara yang dilepaskan kembali kepada bentuk asalnya, biasanya untuk paparan atau pemprosesan selanjutnya.
Untuk mencegah serangan suntikan SQL, di mana input berniat jahat boleh mengubah logik pertanyaan SQL.
Untuk mengelakkan ralat sintaks dalam pertanyaan apabila data mengandungi aksara seperti ', " atau \.
Untuk mengekalkan integriti data, memastikan bahawa input pengguna disimpan dan diambil tepat seperti yang dimasukkan.
Meloloskan diri dilakukan oleh:
Menggandakan petikan tunggal dalam rentetan (cth., 'O'Brien' menjadi 'O''Brien').
Menggunakan fungsi pangkalan data terbina dalam atau perpustakaan untuk melepaskan input dengan betul.
Unescaping berlaku apabila mendapatkan semula data, selalunya dikendalikan secara automatik oleh pangkalan data atau lapisan aplikasi anda.
Dalam pembangunan moden, ini biasanya diuruskan oleh pertanyaan berparameter atau ORM (Pemeta Perkaitan Objek), yang mengendalikan melarikan diri dengan selamat dan automatik.
Apabila memasukkan atau menanyakan input pengguna secara langsung dalam SQL mentah (tidak disyorkan melainkan melarikan diri dengan betul).
Apabila berurusan dengan sistem warisan atau rentetan SQL mentah di mana perlindungan automatik tidak ada.
Sentiasa melarikan diri daripada input melainkan menggunakan pernyataan yang disediakan atau pertanyaan berparameter, yang merupakan alternatif pilihan dan lebih selamat.