SQL escape/unescape refererer til processen med at rense tekstinput, så det sikkert kan integreres i SQL-sætninger.
Escaping ændrer specialtegn (som anførselstegn eller omvendte skråstreger) på en måde, der forhindrer syntaksfejl eller ondsindet kodeudførelse.
Unescape konverterer de escapede tegn tilbage til deres oprindelige form, normalt til visning eller videre behandling.
For at forebygge SQL-injektionsangreb, hvor ondsindet input kan ændre logikken i en SQL-forespørgsel.
Til undgå syntaksfejl i forespørgsler, når data indeholder tegn som ', " eller \.
For at opretholde dataintegriteten skal du sikre, at brugerinput gemmes og hentes præcis som indtastet.
Escaping udføres ved at:
Fordoble enkelte anførselstegn i strenge (f.eks. bliver 'O'Brien' til 'O''Brien').
Bruge indbyggede databasefunktioner eller biblioteker til at escape input korrekt.
Unescape forekommer ved hentning af data, ofte håndteret automatisk af databasen eller dit applikationslag.
I moderne udvikling håndteres dette typisk af parametriserede forespørgsler eller ORM'er (Object-Relational Mappers), som håndterer escape sikkert og automatisk.
Når man indsætter eller forespørger brugerinput direkte i rå SQL (anbefales ikke, medmindre det er korrekt escapet).
Når man arbejder med ældre systemer eller rå SQL-strenge, hvor automatisk beskyttelse ikke er på plads.
Escape altid input, medmindre man bruger forberedte sætninger eller parametriserede forespørgsler, som er de foretrukne og sikrere alternativer.