Todas as ferramentas

Codificador/decodificador HTML

Exibe a entrada do usuário com segurança convertendo < em &lt; e & para &amp;. Decodifique entidades ao ler trechos de HTML armazenados em texto simples para indexação de pesquisa. Funciona localmente para depuração de modelo e CMS.
Entrada
Saída
Hello world

Como codificar ou decodificar HTML

1. Escolha o modo de codificação (escape) ou decodificação.
2. Colar HTML ou texto simples.
3. Copiar saída de escape para modelo ou atributo.
4. Decodificar para leitura com muita entidade Exportações XML/HTML.

Exemplos de entidade HTML

Exibição segura de comentários do usuário

A entrada <script>alert(1)</script> torna-se um texto inofensivo quando codificado para inserção segura de innerHTML por meio do nó de texto.

Apóstrofo no atributo

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

Decodificar exportação CMS

Descrição do produto e descrição do produto cópia; decodifica para e para edição.

Quando codificar HTML

Ao inserir texto não confiável em modelos HTML.
Ao depurar codificação dupla em modelos de email.
Ao preparar trechos HTML gerados por markdown.

Quando a codificação não é suficiente

Quando você precisar higienizar o HTML com tags permitidas - use a biblioteca de estilo DOMPurify.
Quando o conteúdo é uma string JavaScript - também escape aspas para o contexto JS.
Quando URL em href - use o codificador de URL separadamente.

O contexto é importante

O escape HTML para valores de atributos pode ser diferente dos nós de texto - as aspas são importantes nos atributos. A folha de dicas OWASP também lista contextos JS e CSS.

Bug de codificação dupla

&amp;amp;amp; no banco de dados significa alguém codificado duas vezes - decodifica uma vez, corrige o pipeline, codifica uma vez na saída.

E-mail HTML

Os clientes variam no suporte da entidade - teste caracteres especiais codificados no Outlook e no Gmail.

Perguntas frequentes

Entidades nomeadas vs numéricas?

&amp; versus &#38; — equivalente para caracteres comuns; emoji pode precisar de &#x1F600; formato numérico.

Codificar todo o documento HTML?

A codificação do documento inteiro mostra tags literais - geralmente codifica apenas os dados do usuário.

Prevenção XSS?

A codificação de nós de texto ajuda; nunca concatene o HTML bruto do usuário. Cabeçalhos CSP adicionam defesa.

Caracteres UTF-8?

Muitas vezes deixados como UTF-8 no HTML5 moderno; entidades opcionais para não-ASCII.

Local?

Sim.

Saída Markdown?

Par com markdownToHtml - a codificação acontece na camada de renderização em pipelines adequados.