Skip to content

Escape de HTML

O escape de HTML é uma técnica que converte caracteres especiais reservados (como <, >, &, ", ') em suas entidades HTML correspondentes (como &lt;, &gt;, &amp;, &quot;, &#39;).

Como funciona nos Frameworks

Frameworks modernos como React e Vue fazem o escape de HTML automaticamente por padrão.

Exemplo em React:

tsx
const userContent = "<script>alert('xss')</script>";
// O React renderiza isso como texto puro na tela, convertendo os sinais de < e >.
return <div>{userContent}</div>;

Como fazer vs Como não fazer

✅ Como fazer

  • Confie no escape automático do seu framework para a grande maioria dos casos de uso (exibição de nomes, mensagens, labels).
  • Utilize interpolação de strings segura (chaves no React {} ou v-text no Vue).
  • Mantenha seu framework atualizado para garantir que os algoritmos de escape sigam as melhores práticas de segurança.

❌ Como não fazer

  • Não use interpolações de strings nativas do JavaScript (ex: element.innerHTML = \
    ${userContent}
    ``) que não fazem o escape automático.
  • Não desative o escape automático a menos que seja estritamente necessário e você esteja usando uma biblioteca de sanitização (como DOMPurify).
  • Não confie que o escape de HTML protege contra todos os tipos de XSS (ele não protege contra injeção de atributos como href="javascript:..." ou injeção de CSS).