Enkoder / dekoder HTML
Bezpiecznie wyświetlaj input użytkownika, zamieniając < na < i & na &. Dekoduj encje przy odczycie zapisanych fragmentów HTML z powrotem do plain text dla indeksowania. Działa lokalnie przy debugowaniu szablonów i CMS.
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 ' lub ' zależnie od kontekstu.
Dekoduj eksport CMS
Opis produktu & 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.
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.
Najczęstsze pytania
Encje nazwane vs numeryczne?
& vs & — równoważne dla typowych znaków; emoji może wymagać 😀 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.