Codificador/decodificador HTML
Exibe a entrada do usuário com segurança convertendo < em < e & para &. 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 ' or ' 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; 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?
& versus & — equivalente para caracteres comuns; emoji pode precisar de 😀 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.