Skip to main content
CheckTown
Dev Tools

Escapowanie lancuchow: Jak obslugiwac znaki specjalne w kodzie

Opublikowano 6 min czytania
W tym artykule

Czym jest escapowanie lanskow?

Escapowanie lanskow to proces dodawania specjalnych znakow, aby znaki o znaczeniu skladniowym byly traktowane jako tekst literalny. Kazdy jezyk programowania i format danych rezerwuje okreslone znaki — cudzyslowy w JSON, nawiasy katowe w HTML, znaki procentu w URL.

Bez prawidlowego escapowania lancuchy ze znakami specjalnymi powoduja bledy parsowania, luki bezpieczenstwa jak XSS i SQL injection, lub uszkodzone wyjscie.

Formaty escapowania

Rozne konteksty maja rozne zasady escapowania:

  • Escapowanie JSON — escapuje cudzyslowy (\"), odwrotne ukosniki (\\) i znaki sterujace (\n, \t, \r)
  • Escapowanie HTML — konwertuje < na &lt;, > na &gt;, & na &amp;. Zapobiega interpretacji tresci jako tagow HTML
  • Kodowanie URL — zastepuje niebezpieczne znaki kodami hex %XX (spacja staje sie %20)
  • Escapowanie SQL — podwaja pojedyncze cudzyslowy (' staje sie ''). Zapobiega atakom SQL injection
  • Escapowanie regex — dodaje odwrotny ukosnik przed metaznakami . * + ? do dopasowania literalnego

Typowe zastosowania

Escapowanie lancuchow pojawia sie w calym cyklu rozwoju:

  • Osadzanie danych wejsciowych — prawidlowe escapowanie przy wstawianiu do JSON, HTML lub SQL zapobiega bledom i lukom
  • Sanityzacja formularzy — aplikacje webowe musza escapowac przeslana tresc przed wyswietleniem, aby zapobiec XSS
  • Budowanie payloadow API — przy tworzeniu tresci zadan JSON wszystkie wartosci lancuchowe musza byc prawidlowo escapowane

Wypróbuj za darmo — bez rejestracji

Wyprobuj narzedzie Escape →

Escapowanie vs Kodowanie: jaka jest roznica?

Escapowanie i kodowanie sa czesto mylone. Escapowanie dodaje znaczniki, aby znaki byly traktowane literalnie. Wyjscie pozostaje w tym samym formacie.

Kodowanie konwertuje dane z jednej reprezentacji na inna. Base64 konwertuje dane binarne na tekst ASCII. Kluczowa roznica: escapowanie zachowuje format, kodowanie go zmienia.

Wskazowki i najlepsze praktyki

Prawidlowe escapowanie zapobiega bledom i lukom bezpieczenstwa:

  • Escapuj na granicy — zawsze escapuj lancuchy w punkcie wejscia do nowego kontekstu
  • Unikaj podwojnego escapowania — jesli framework juz escapuje wyjscie, reczne escapowanie tworzy widoczne odwrotne ukosniki
  • Uzywaj escapowania specyficznego dla kontekstu — escapowanie HTML nie chroni przed SQL injection i odwrotnie

Najczesciej zadawane pytania

Kiedy escapowac recznie, a kiedy uzywac biblioteki?

Zawsze preferuj funkcje biblioteczne. Jezyki zapewniaja wbudowane narzedzia, ktore prawidlowo obsluguja przypadki brzegowe.

Czy escapowanie zapobiega wszystkim atakom XSS?

Escapowanie HTML zapobiega wiekszosci atakow XSS, ale nie wszystkim wektorom. Tresc w kontekstach JavaScript, CSS lub URL wymaga dodatkowej sanityzacji. Naglowki CSP zapewniaja najsilniejsza ochrone.

W jakiej kolejnosci escapowac, gdy dane przechodza przez wiele formatow?

Escapuj najpierw dla najwewnetrzniejszego kontekstu. Na przyklad, aby osadzic lancuch w JSON umieszczonym w atrybucie HTML, najpierw JSON-escapuj, potem HTML-escapuj.

Powiązane narzędzia