Escape de HTML
O escape de HTML é uma técnica que converte caracteres especiais reservados (como <, >, &, ", ') em suas entidades HTML correspondentes (como <, >, &, ", ').
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
{}ouv-textno 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).