Skip to content

XSS (Cross-Site Scripting)

O XSS ocorre quando um atacante consegue injetar scripts maliciosos (geralmente JavaScript) em páginas visualizadas por outros usuários.


Tipos de XSS

Reflected XSS

O script malicioso é "refletido" de uma requisição HTTP (geralmente via parâmetros de URL) para a página.

  • Exemplo: Um link de busca ?q=<script>alert('xss')</script>.

Stored XSS

O script é armazenado permanentemente no servidor (ex: banco de dados) e servido para todos que acessarem a página.

  • Exemplo: Um comentário em um post ou o nome de um perfil de usuário.

DOM-based XSS

A vulnerabilidade existe inteiramente no código do lado do cliente. O script é executado quando o código JS lê dados de uma fonte não segura (como a URL) e os escreve no DOM.

  • Exemplo: document.getElementById('welcome').innerHTML = decodeURIComponent(window.location.hash);

Melhores Práticas

✅ Como fazer

  • Use sempre o escape automático do React/Vue (JSX/Templates).
  • Use bibliotecas de sanitização como DOMPurify ao lidar com HTML vindo de fontes externas.

❌ Como não fazer

  • Jamais use dangerouslySetInnerHTML ou v-html com dados não sanitizados.
  • Não confie em innerHTML para inserir textos simples; use textContent.