Skip to main content
CheckTown
Conversores

Codificação de entidades HTML: Previna XSS e exiba caracteres especiais

Publicado 5 min de leitura
Neste artigo

O Que São Entidades HTML?

As entidades HTML são códigos especiais que representam caracteres que têm um significado especial em HTML ou que não podem ser digitados diretamente. Por exemplo, &lt; é a entidade HTML para o caractere < (sinal de menor que), que de outra forma seria interpretado como o início de uma tag HTML.

As entidades podem ser nomeadas (&lt;, &amp;, &copy;) ou numéricas (&#60;, &#38;). As entidades nomeadas são mais legíveis; as entidades numéricas funcionam para qualquer caractere Unicode, mesmo sem uma entidade nomeada específica.

Como Funciona a Codificação de Entidades HTML

O codificador analisa o texto à procura de caracteres que precisam de escape e substitui-os pelos seus equivalentes em entidades.

  • Escape crítico — < > & " ' são sempre escapados para prevenir injeção de HTML e XSS
  • Escape estendido — opcionalmente codifica todos os caracteres não ASCII como entidades numéricas
  • Modo de descodificação — converte HTML codificado com entidades de volta para texto simples para inspeção

Experimente gratuitamente — sem cadastro

Codificar Entidades HTML →

Quando Usar a Codificação de Entidades HTML

A codificação de entidades HTML é fundamental para a segurança e para exibir caracteres especiais em páginas web.

  • Exibição de conteúdo do utilizador — codifique sempre o conteúdo gerado pelo utilizador antes de renderizar em HTML para prevenir ataques XSS
  • Templates de email — codifique caracteres especiais em templates de email HTML para garantir a renderização correta
  • Documentação — escape exemplos de código em documentação HTML para que os sinais de maior e menor sejam exibidos corretamente

Perguntas Frequentes

O que é XSS e como a codificação de entidades o previne?

Cross-Site Scripting (XSS) é um ataque em que scripts maliciosos são injetados em páginas web visualizadas por outros utilizadores. Se um utilizador enviar <script>alert('xss')</script> e este for renderizado como HTML, o script é executado. A codificação de entidades converte < em &lt;, fazendo com que seja renderizado como texto e impedindo a execução do script.

Quando devo usar &amp; em vez de & em HTML?

Em atributos e conteúdo HTML, & deve ser codificado como &amp; sempre que não faça parte de uma entidade HTML. Um & não codificado em HTML é um erro de análise. Em URLs dentro de atributos href, & também deve ser codificado como &amp; para ser HTML válido (embora os navegadores sejam tolerantes).

A codificação de entidades HTML protege contra injeção SQL?

Não. A codificação de entidades HTML protege apenas contra injeção de HTML (XSS). Para prevenir injeção SQL, utilize consultas parametrizadas ou prepared statements na camada de base de dados. Estes são vetores de ataque distintos que exigem defesas diferentes — nunca dependa da codificação HTML para prevenir injeção SQL.

Ferramentas relacionadas