Co je escapování
Escapování je úprava dat tak, aby se nemohla interpretovat jako kód, ale pouze jako běžný text.
Používá se hlavně ve chvíli, kdy aplikace pracuje se vstupy od uživatele – například ve formulářích, URL nebo databázových dotazech. Bez escapování by mohl útočník vložit škodlivý kód, který by se místo zobrazení spustil.
Jak escapování funguje
Princip escapování spočívá v tom, že se speciální znaky převedou do bezpečné podoby.
Například znaky jako <, >, ‚ nebo “ mají v kódu speciální význam. Pokud se správně neošetří, mohou změnit chování aplikace.
Escapování nahradí znaky jejich bezpečnou reprezentací, která se zobrazí jako text.
Pro představu:
- znak < se může převést na <
- znak > na >
Díky tomu se obsah zobrazí, ale nespustí se jako HTML nebo skript.
Kde se escapování používá
Escapování se uplatňuje všude tam, kde aplikace pracuje s externími daty.
Typicky jde o:
- výstup na webové stránce (ochrana proti XSS)
- práci s databází (ochrana proti SQL injection)
- generování URL nebo HTML atributů
Bez escapování by uživatelský vstup mohl ovlivnit strukturu stránky nebo chování aplikace.
Escapování vs. validace vstupu
Escapování se často zaměňuje s validací, ale jde o dva odlišné kroky.
Validace kontroluje, jestli jsou data v požadovaném formátu. Escapování řeší, jak se data bezpečně zobrazí nebo použijí.
V praxi:
- validace → Je to správný e-mail?
- escapování → Nezpůsobí tento vstup problém při zobrazení?
Oba přístupy se doplňují a používají společně.
Proč je escapování důležité
Escapování patří mezi základní bezpečnostní mechanismy při vývoji aplikací (včetně webových aplikací).
Chrání před situacemi, kdy by vstupní data mohla:
- změnit strukturu HTML
- spustit škodlivý skript
- narušit databázový dotaz
Bez správného ošetření vstupů může dojít k napadení aplikace i bez přímého přístupu k systému.
Způsob escapování se liší podle toho, kde se data používají. Jinak se escapuje HTML, jinak JavaScript a jinak databázový dotaz.