Ferramentas para Desenvolvedores

Codificar HTML

Transforme caracteres em entidades HTML seguras.

Avalie esta ferramenta

Como usar Codificar HTML

  1. Cole seu texto ou HTML.
  2. Copie as entidades já escapadas.

Sobre Codificar HTML

O escape é o que impede que um texto seja interpretado como marcação. Substitua um sinal de menor-que por < e o navegador desenha o caractere em vez de abrir uma tag — por isso escapar entradas não confiáveis antes que cheguem a uma página é a base da prevenção contra cross-site scripting. Esta ferramenta converte os cinco caracteres que importam — o "e" comercial, os colchetes angulares, as aspas duplas e o apóstrofo. Tudo o mais, incluindo letras acentuadas e emojis, é deixado como está; o UTF-8 lida com eles sem precisar de entidades.

O "e" comercial precisa ser tratado primeiro, porque é ele que inicia toda entidade. Escape os colchetes angulares primeiro e você acabaria escapando os "e" comerciais que acabou de introduzir, transformando < em <. Esta ferramenta faz uma única passagem, então cada caractere é substituído uma única vez. Entidades nomeadas e numéricas são equivalentes para um interpretador — a forma numérica apenas soletra o ponto de código diretamente.

Fique claro sobre o propósito disto: inspecionar e preparar texto, não tornar nada seguro. O escape depende do contexto — uma saída segura no corpo de um HTML não é automaticamente segura dentro de um bloco de script, um atributo, uma URL ou um valor CSS, e cada um exige suas próprias regras. Faça o escape no seu mecanismo de templates, onde o contexto é conhecido. Reverta com o decodificador de HTML. Tudo roda no seu navegador.

Perguntas frequentes

Quais caracteres ele escapa?

Exatamente cinco: & < > " e '. Esses são os que podem mudar como um interpretador lê seu texto. Letras acentuadas, símbolos e emojis ficam intactos, porque uma página em UTF-8 os renderiza bem e transformá-los em entidades só deixaria a saída maior.

Escapar torna meu site seguro contra XSS?

Não, e é importante não achar que sim. O escape para o corpo de HTML não é suficiente dentro de um bloco de script, um atributo de manipulador de eventos, uma URL ou uma folha de estilo — cada contexto tem regras diferentes. Use o escape sensível ao contexto do seu framework; esta página serve para inspecionar e preparar texto.

Por que o "e" comercial precisa ser escapado primeiro?

Porque o & inicia toda entidade. Se você escapasse < para &lt; primeiro e depois escapasse os "e" comerciais, atingiria o & que acabou de criar e terminaria com &amp;lt; — lixo visível. Uma única passagem, como se usa aqui, evita esse problema de ordem por completo.

Por que &#39; em vez de &apos;?

Ambos significam um apóstrofo, mas &#39; é uma referência numérica que qualquer interpretador de HTML resolve, enquanto o nomeado &apos; veio do XML e não é reconhecido por interpretadores de HTML mais antigos. Por isso, os escapadores tendem a preferir a forma numérica.

Posso colar HTML de verdade nele?

Sim — esse é um uso comum. Cole a marcação e você recebe de volta o código-fonte escapado, pronto para ser exibido como código numa página em vez de ser renderizado como elementos.