Wszystkie narzędzia

Enkoder / dekoder HTML

Bezpiecznie wyświetlaj input użytkownika, zamieniając < na &lt; i & na &amp;. Dekoduj encje przy odczycie zapisanych fragmentów HTML z powrotem do plain text dla indeksowania. Działa lokalnie przy debugowaniu szablonów i CMS.
Wejście
Wynik
Hello world

Jak kodować lub dekodować HTML

1. Wybierz encode (escape) lub decode.
2. Wklej HTML lub plain text.
3. Skopiuj escapowany output do szablonu lub atrybutu.
4. Dekoduj, by czytać encje z eksportów XML/HTML.

Przykłady encji HTML

Bezpieczny komentarz użytkownika

Input <script>alert(1)</script> staje się nieszkodliwym tekstem przy encode do bezpiecznego węzła tekstowego.

Apostrof w atrybucie

O'Reilly w atrybucie title koduje cudzysłów jako &#39; lub &apos; zależnie od kontekstu.

Dekoduj eksport CMS

Opis produktu &amp; copy; dekoduje się do & do edycji.

Kiedy kodować HTML

Gdy wstawiasz niezaufany tekst do szablonów HTML.
Gdy debugujesz double-encoding w szablonach e-mail.
Gdy przygotowujesz snippet HTML z wygenerowanego Markdown.

Kiedy encoding nie wystarczy

Gdy potrzebujesz sanityzacji HTML z dozwolonymi tagami — użyj biblioteki typu DOMPurify.
Gdy treść to string JavaScript — escapuj też cudzysłowy dla kontekstu JS.
Gdy URL w href — osobno użyj enkodera URL.

Kontekst ma znaczenie

Escaping HTML dla wartości atrybutów może różnić się od węzłów tekstowych — cudzysłowy ważne w atrybutach. OWASP cheat sheet wymienia też konteksty JS i CSS.

Bug double encoding

&amp;amp; w DB oznacza double encode — dekoduj raz, napraw pipeline, encode raz przy output.

HTML e-mail

Klienci różnią się wsparciem encji — testuj zakodowane znaki specjalne w Outlook i Gmail.

Najczęstsze pytania

Encje nazwane vs numeryczne?

&amp; vs &#38; — równoważne dla typowych znaków; emoji może wymagać &#x1F600; numerycznej formy.

Kodować cały dokument HTML?

Kodowanie całego doc pokazuje literalne tagi — zwykle koduj tylko dane użytkownika.

Zapobieganie XSS?

Encoding węzłów tekstowych pomaga; nigdy nie konkatenij surowego HTML użytkownika. Nagłówki CSP dodają obronę.

Znaki UTF-8?

W nowoczesnym HTML5 często zostają jako UTF-8; encje opcjonalne dla non-ASCII.

Lokalnie?

Tak.

Output Markdown?

Połącz z markdownToHtml — encode dzieje się na warstwie render w właściwych pipeline.