Entidades HTML

Codifique e decodifique caracteres e entidades especiais HTML

Casos de uso

  • Escapar conteúdo do utilizador para HTML seguro — converta `<script>` em `&lt;script&gt;` antes de inserir em um template.
  • Leia a fonte de e-mail HTML bruto — decodifique `&amp;` e `&#x2603;` para ver o que o destinatário realmente vê.
  • Construa trechos seguros para CMS — codifique `'` e `"` para que uma coluna de banco de dados não quebre um contexto SQL ou HTML.
  • Depure relatórios de XSS — desescape entradas suspeitas para recuperar a carga original que as ferramentas de segurança sinalizaram.

Quando você precisa da codificação de entidades HTML?

Quando o texto fornecido pelo utilizador é renderizado em HTML, caracteres como `<` e `>` devem ser escapados como `&lt;` e `&gt;` para evitar serem interpretados como tags. Ignorar isso é a causa raiz das vulnerabilidades XSS. A ferramenta codifica os cinco caracteres HTML inseguros principais, além de qualquer Unicode que você escolher escapar.

Entidades numéricas (`&#38;`, `&#x26;`) funcionam em qualquer contexto HTML. Entidades nomeadas (`&amp;`, `&copy;`) são mais fáceis de ler, mas funcionam apenas em HTML — analisadores XML não conhecem todos os nomes HTML.

Exemplos

EntradaResultado
<script>alert('hi')</script>&lt;script&gt;alert(&#39;hi&#39;)&lt;/script&gt;
© 2024 — Wenee&copy; 2024 &mdash; Wenee

Perguntas frequentes

Quais caracteres precisam ser codificados?

No mínimo: `<`, `>`, `&`, `"`, e `'`. Codificar mais (como todos não-ASCII) é inofensivo, mas aumenta o tamanho da saída.

Entidades nomeadas ou numéricas são melhores?

Nomeadas (`&amp;`) são mais legíveis em HTML; numéricas (`&#38;`) funcionam tanto em HTML quanto em XML. Escolha numéricas para segurança entre formatos.

A codificação de entidades HTML é a mesma que a codificação de URL?

Não — entidades HTML usam a sintaxe `&...;` para contextos HTML. A codificação de URL usa `%XX` para contextos de URL. Eles servem a diferentes camadas.

Isso previne XSS?

Codificar conteúdo de texto na saída HTML previne o vetor XSS mais comum. Outros contextos (valores de atributos, strings JavaScript, CSS) precisam de suas próprias regras de escape.

Meu texto é enviado para algum lugar?

Não. A codificação e decodificação acontecem inteiramente no seu navegador.