Toate instrumentele

Encoder / decoder HTML

Afișează în siguranță intrarea utilizatorului prin conversia < în &lt; și & către &amp;. Decodați entitățile când citesc fragmentele HTML stocate înapoi în text simplu pentru indexarea căutării. Se funcționează local pentru șablon și depanare CMS.
Intrare
Ieșire
Hello world

Cum să codificați sau să decodați HTML

1. Alege modul codificare (escape) sau decodare.
2. Lipește HTML sau text simplu.
3. Copiază rezultatul escape pentru șablon sau atribut.
4. Decodificați pentru a citi exporturi XML/HTML cu entitate.

Exemple de entități HTML

Afișare sigură pentru comentariile utilizatorului

Intrarea <script>alerta(1)</script> devine text inofensiv atunci când este codificată pentru inserarea în siguranță pentru HTML prin intermediul nodului text.

Apostrof în atribut

O'Reilly in title attribute encodes quote as &#39; or &apos; depending on context.

Decodați exportul CMS

Descrierea produsului &amp; copie; decodifică la și pentru editare.

Când să codificați HTML

Când inserați text neîncrezător în șabloanele HTML.
Când depanați codificarea dublă în șabloanele de e-mail.
Când pregătiți fragmente HTML generate cu reducere.

Când codificarea nu este suficientă

Când ai nevoie să dezinfectați HTML cu etichete permise - folosești biblioteca de stil DOMPurify.
Când conținutul este șir JavaScript - de asemenea, ghilimele de escape pentru contextul JS.
Când URL în href — folosești codificatorul URL separat.

Contextul contează

Evadarea HTML pentru valorile atributelor poate diferi de nodurile text - ghilimele contează în atribute. OWASP cheat sheet listează și contexte JS și CSS.

Eroare de codificare dublă

&amp;amp; în DB înseamnă cineva codificat de două ori - decodați o dată, reparați conducta, codificați o dată la ieșire.

E-mail HTML

Clienții variază în ceea ce privește suportul pentru entități - testați caracterele speciale codificate în Outlook și Gmail.

Întrebări frecvente

Entități denumite vs entități numerice?

&amp; vs &#38; — echivalent pentru caracterele comune; emoji poate avea nevoie de &#x1F600; formă numerică.

Codificați întregul document HTML?

Codificarea întregului document arată etichete literale - de obicei codifică numai datele utilizatorului.

Prevenirea XSS?

Codificarea nodurilor text ajută; niciodată nu concat HTML utilizator brut. Antetele CSP adaugă apărare.

Caractere UTF-8?

Adesea lăsat ca UTF-8 în HTML5 modern; entități opționale pentru non-ASCII.

Local?

Da.

Ieșire de reducere?

Asociați cu markdownToHtml - codificarea are loc la stratul de randare în conducte adecvate.