SQL escape/unescape hänvisar till processen att sanera textinmatning så att den säkert kan bäddas in i SQL-satser.
Escaping modifierar specialtecken (som citattecken eller bakåtsnedstreck) på ett sätt som förhindrar syntaxfel eller skadlig kodkörning.
Unescape konverterar de escapede tecknen tillbaka till sin ursprungliga form, vanligtvis för visning eller vidare bearbetning.
För att förhindra SQL-injektionsattacker, där skadlig inmatning kan ändra logiken i en SQL-fråga.
Till undvik syntaxfel i frågor när data innehåller tecken som ', " eller \.
För att bibehålla dataintegriteten, se till att användarinmatning lagras och hämtas exakt som den anges.
Escaping görs genom att:
Dubblera enkla citattecken i strängar (t.ex. 'O'Brien' blir 'O''Brien').
Använda inbyggda databasfunktioner eller bibliotek för att escape-inmatningar korrekt.
Unescape sker vid hämtning av data, ofta hanterat automatiskt av databasen eller ditt applikationslager.
I modern utveckling hanteras detta vanligtvis av parametriserade frågor eller ORM:er (Object-Relational Mappers), som hanterar escape säkert och automatiskt.
När man infogar eller frågar användarinmatning direkt i rå SQL (rekommenderas inte om den inte är korrekt escaped).
När man hanterar äldre system eller råa SQL-strängar där automatiskt skydd inte finns på plats.
Escape alltid inmatning om man inte använder förberedda satser eller parametriserade frågor, vilka är de föredragna och säkrare alternativen.