SQL escape/unescape refererer til prosessen med å rense tekstinndata slik at den trygt kan bygges inn i SQL-setninger.
Escaping endrer spesialtegn (som anførselstegn eller omvendte skråstreker) på en måte som forhindrer syntaksfeil eller ondsinnet kodeutførelse.
Unescape konverterer de escapede tegnene tilbake til sin opprinnelige form, vanligvis for visning eller videre behandling.
For å forhindre SQL-injeksjonsangrep, der ondsinnet inndata kan endre logikken i en SQL-spørring.
Til unngå syntaksfeil i spørringer når data inneholder tegn som ', " eller \.
For å opprettholde dataintegriteten, sørg for at brukerinndata lagres og hentes nøyaktig slik de er skrevet inn.
Escaping gjøres ved å:
Doble enkle anførselstegn i strenger (f.eks. 'O'Brien' blir til 'O''Brien').
Bruke innebygde databasefunksjoner eller biblioteker for å escape inndata på riktig måte.
Unescape skjer når dataene hentes, ofte håndtert automatisk av databasen eller applikasjonslaget ditt.
I moderne utvikling håndteres dette vanligvis av parametriserte spørringer eller ORM-er (objektrelasjonelle mappere), som håndterer escape sikkert og automatisk.
Når du setter inn eller spør om brukerinput direkte i rå SQL (anbefales ikke med mindre escape er utført på riktig måte).
Når du håndterer eldre systemer eller rå SQL-strenger der automatisk beskyttelse ikke er på plass.
Escape alltid input med mindre du bruker forberedte setninger eller parameteriserte spørringer, som er de foretrukne og tryggere alternativene.