W tym artykule
Czym jest escapowanie lanskow?
Escapowanie lanskow to proces dodawania specjalnych znakow, aby znaki o znaczeniu skladniowym byly traktowane jako tekst literalny. Każdy język programowania i format danych rezerwuje określone znaki — cudzysłowy w JSON, nawiasy kątowe w HTML, znaki procentu w URL.
Bez prawidłowego escapowania łańcuchy ze znakami specjalnymi powoduja błędy parsowania, luki bezpieczeństwa jak XSS i SQL injection, lub uszkodzone wyjście.
Formaty escapowania
Różne konteksty maja różne zasady escapowania:
- Escapowanie JSON — escapuje cudzysłowy (\"), odwrotne ukosniki (\\) i znaki sterujące (\n, \t, \r)
- Escapowanie HTML — konwertuje < na <, > na >, & na &. Zapobiega interpretacji treści jako tagow HTML
- Kodowanie URL — zastępuje niebezpieczne znaki kodami hex %XX (spacja staje sie %20)
- Escapowanie SQL — podwaja pojedyncze cudzysłowy (' staje sie ''). Zapobiega atakom SQL injection
- Escapowanie regex — dodaje odwrotny ukosnik przed metaznakami . * + ? do dopasowania literalnego
Typowe zastosowania
Escapowanie łańcuchów pojawia sie w całym cyklu rozwoju:
- Osadzanie danych wejściowych — prawidłowe escapowanie przy wstawianiu do JSON, HTML lub SQL zapobiega błędom i lukom
- Sanityzacja formularzy — aplikacje webowe musza escapowac przeslana treść przed wyswietleniem, aby zapobiec XSS
- Budowanie payloadow API — przy tworzeniu treści zadan JSON wszystkie wartości lancuchowe musza byc prawidłowo escapowane
Wypróbuj za darmo — bez rejestracji
Wyprobuj narzędzie Escape →Escapowanie vs Kodowanie: jaka jest różnica?
Escapowanie i kodowanie sa często mylone. Escapowanie dodaje znaczniki, aby znaki byly traktowane literalnie. Wyjście pozostaje w tym samym formacie.
Kodowanie konwertuje dane z jednej reprezentacji na inna. Base64 konwertuje dane binarne na tekst ASCII. Kluczowa różnica: escapowanie zachowuje format, kodowanie go zmienia.
Wskazowki i najlepsze praktyki
Prawidłowe escapowanie zapobiega błędom i lukom bezpieczeństwa:
- Escapuj na granicy — zawsze escapuj łańcuchy w punkcie wejścia do nowego kontekstu
- Unikaj podwojnego escapowania — jeśli framework juz escapuje wyjście, ręczne escapowanie tworzy widoczne odwrotne ukosniki
- Używaj escapowania specyficznego dla kontekstu — escapowanie HTML nie chroni przed SQL injection i odwrotnie
Najczęściej zadawane pytania
Kiedy escapowac ręcznie, a kiedy używać biblioteki?
Zawsze preferuj funkcje biblioteczne. Języki zapewniaja wbudowane narzędzia, ktore prawidłowo obsługują przypadki brzegowe.
Czy escapowanie zapobiega wszystkim atakom XSS?
Escapowanie HTML zapobiega większości atakow XSS, ale nie wszystkim wektorom. Treść w kontekstach JavaScript, CSS lub URL wymaga dodatkowej sanityzacji. Nagłówki CSP zapewniaja najsilniejsza ochrone.
W jakiej kolejności escapowac, gdy dane przechodza przez wiele formatow?
Escapuj najpierw dla najwewnetrzniejszego kontekstu. Na przykład, aby osadzic łańcuch w JSON umieszczonym w atrybucie HTML, najpierw JSON-escapuj, potem HTML-escapuj.