GeradoresOnline
Texto

Converter Texto para HTML

Codifique caracteres especiais (<, >, &, aspas) em entidades HTML, ou decodifique de volta.

Documentação técnica

Texto para HTML: codificar entidades é uma defesa real contra XSS, não só formatação

Codificar entidades HTML — transformar < em &lt;, & em &amp;, " em &quot; — parece uma operação de formatação de texto, mas é, na prática, um mecanismo central de segurança web: é exatamente essa codificação que impede que texto fornecido por um usuário seja interpretado pelo navegador como código HTML/JavaScript executável quando exibido de volta na página. Se um campo de comentário armazena e exibe o texto de um usuário sem codificar entidades, alguém pode inserir <script>...</script> como "comentário", e esse script executaria no navegador de qualquer outro usuário que visse a página — a classe de vulnerabilidade conhecida como XSS (Cross-Site Scripting), uma das mais comuns e mais antigas da web.

Por que esta ferramenta não usa substituição manual de caracteres

Uma implementação manual de codificação (uma sequência de replace() para cada caractere especial) tem uma armadilha clássica: a ordem das substituições importa. Codificar </> antes de & produziria novos caracteres & (parte de &lt;) que seriam codificados de novo na etapa seguinte, corrompendo o resultado (escaping duplicado). Este codificador evita esse problema inteiramente usando uma técnica diferente: atribui o texto a div.textContent (que o navegador trata como texto puro, nunca como HTML) e lê de volta div.innerHTML — delegando a codificação para o próprio serializador HTML nativo do navegador, em vez de reimplementar essa lógica manualmente com regex. A decodificação usa o truque inverso: atribui o texto a textarea.innerHTML e lê textarea.value, aproveitando que o conteúdo de um <textarea> nunca é interpretado como HTML executável pelo navegador.

Codificar entidades não substitui as demais camadas de defesa contra XSS

Codificação de entidades protege especificamente o contexto de "texto dentro de HTML" — mas um sistema real tem múltiplos contextos de inserção (dentro de um atributo, dentro de uma URL, dentro de um bloco <script>), cada um exigindo sua própria regra de escaping específica. Confiar só em codificação de entidades HTML para todo contexto de saída, sem considerar onde exatamente o dado do usuário está sendo inserido, é uma causa real de vulnerabilidades XSS que "parecem" corrigidas mas não estão — a defesa correta depende do contexto de destino do dado, não de uma única função de escaping aplicada universalmente.

Gostou das ferramentas? Ajude a manter o site no ar: apoiar via Pix · Sobre · Contato · Política de Privacidade