Entidades HTML
Codifique e decodifique caracteres e entidades especiais HTML
Casos de uso
- Escapar conteúdo do utilizador para HTML seguro — converta `<script>` em `<script>` antes de inserir em um template.
- Leia a fonte de e-mail HTML bruto — decodifique `&` e `☃` 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 `<` e `>` 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 (`&`, `&`) funcionam em qualquer contexto HTML. Entidades nomeadas (`&`, `©`) são mais fáceis de ler, mas funcionam apenas em HTML — analisadores XML não conhecem todos os nomes HTML.
Exemplos
| Entrada | Resultado |
|---|---|
| <script>alert('hi')</script> | <script>alert('hi')</script> |
| © 2024 — Wenee | © 2024 — 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 (`&`) são mais legíveis em HTML; numéricas (`&`) 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.
