SQL escape/unescape označuje proces čistenia textového vstupu, aby sa dal bezpečne vložiť do príkazov SQL.
Escaping upravuje špeciálne znaky (ako sú úvodzovky alebo spätné lomítka) spôsobom, ktorý zabraňuje syntaktickým chybám alebo spusteniu škodlivého kódu.
Unescapeing konvertuje escapované znaky späť do ich pôvodnej podoby, zvyčajne na zobrazenie alebo ďalšie spracovanie.
Na zabránenie útokom SQL injection, kde škodlivý vstup môže zmeniť logiku SQL dotazu.
Aby sa vyhli syntaktickým chybám v dotazoch, keď dáta obsahujú znaky ako ', " alebo \.
Aby sa zachovala integrita dát, zabezpečilo sa, že vstup používateľa sa uloží a načíta presne tak, ako bol zadaný.
Escape sa vykonáva:
Zdvojnásobením jednoduchých úvodzoviek v reťazcoch (napr. 'O'Brien' sa stane 'O''Brien').
Používaním vstavaných databázových funkcií alebo knižníc na správne escapovanie vstupov.
K odstráneniu escapingu dochádza pri načítaní údajov, často automaticky spracované databázou alebo vašou aplikačnou vrstvou.
V modernom vývoji sa to zvyčajne riadi parametrizovanými dotazmi alebo ORM (mapovačmi objektovo-relačných údajov), ktoré bezpečne a automaticky spracovávajú escaping.
Pri vkladaní alebo dotazovaní používateľského vstupu priamo do surového SQL (neodporúča sa, pokiaľ nie je správne escapovaný).
Pri práci so staršími systémami alebo surovými reťazcami SQL, kde nie je zavedená automatická ochrana.
Vždy escapujte vstupy, pokiaľ nepoužívate pripravené príkazy alebo parametrizované dotazy, ktoré sú preferované a bezpečnejšie alternatívy.