SQL escape/unescape odnosi se na proces čišćenja unosa teksta kako bi se mogao sigurno ugraditi u SQL naredbe.
Escaping modificira posebne znakove (poput navodnika ili obrnutih kosih crta) na način koji sprječava sintaktičke pogreške ili izvršavanje zlonamjernog koda.
Unescapeing pretvara escape znakove natrag u njihov izvorni oblik, obično za prikaz ili daljnju obradu.
Za spriječavanje SQL injekcijskih napada, gdje zlonamjerni unos može promijeniti logiku SQL upita.
Kako biste izbjegli sintaktičke pogreške u upitima kada podaci sadrže znakove poput ', " ili \.
Kako biste održali integritet podataka, osigurali da se korisnički unos pohranjuje i dohvaća točno onako kako je unesen.
Izbjegavanje se vrši:
Udvostručenjem jednostrukih navodnika u nizovima znakova (npr. 'O'Brien' postaje 'O''Brien').
Korištenjem ugrađenih funkcija baze podataka ili biblioteka za pravilno izbjegavanje unosa.
Unescape se događa prilikom dohvaćanja podataka, često automatski od strane baze podataka ili vašeg aplikacijskog sloja.
U modernom razvoju, to se obično upravlja parametriziranim upitima ili ORM-ovima (Objektno-relacijski maperi), koji sigurno i automatski obrađuju izlaz.
Prilikom umetanja ili ispitivanja korisničkog unosa izravno u sirovi SQL (ne preporučuje se osim ako nije pravilno izlazno).
Prilikom rada sa naslijeđenim sustavima ili sirovim SQL nizovima gdje nije na mjestu automatska zaštita.
Uvijek izlazite ulaze osim ako ne koristite pripremljene naredbe ili parametrizirane upite, koji su poželjniji i sigurniji alternative.