Pular para o conteúdo
Vulnerabilidades e Testes de Segurança

O que é cross-site scripting (XSS)?

Cross-site scripting, ou XSS, é um ataque web em que o criminoso injeta um script malicioso dentro de um site legítimo e confiável, para que ele rode no navegador de quem visitar a página. Como o código vem de um site em que a vítima confia, o navegador o executa sem desconfiar, e assim o atacante rouba sessões, senhas e dados dos próprios usuários do site. Em resumo: o site da empresa vira a arma usada contra os clientes dela.

Zamak TechnologiesAtualizado em 12 de julho de 2026

Como o cross-site scripting funciona

Um site mostra, de volta na tela, muita coisa que os usuários digitam: um comentário, um nome de perfil, o termo de uma busca. O XSS acontece quando esse texto é repetido sem tratamento e inclui um script. O navegador do próximo visitante recebe o código como se fosse parte legítima da página, e o executa.

1

Achar o ponto de eco

O atacante procura um campo cujo conteúdo o site mostra a outros usuários sem limpar: uma caixa de comentário, um campo de perfil, um resultado de busca que repete o que foi digitado.

2

Injetar o script

No lugar de um texto comum, ele insere um trecho de código de navegador (um script). Se o site guardar ou repetir esse conteúdo sem tratar, o código fica plantado.

3

A vítima carrega a página

Quando outra pessoa abre a página, o site entrega o script junto com o conteúdo legítimo. Para o navegador da vítima, o código veio de uma fonte confiável, então ele roda sem barreira.

4

O script age

Já rodando no navegador da vítima, o código rouba os cookies de sessão (para se passar por ela), captura o que ela digita, redireciona para uma página falsa ou executa ações no lugar dela.

Fonte: OWASP (o XSS faz parte da categoria A03:2021, Injeção).

Os três tipos de XSS

  • XSS refletido O script viaja num link malicioso. A vítima clica, o site devolve o código na resposta e ele roda no navegador dela. Atinge um alvo por vez e não fica guardado; costuma vir por e-mail ou mensagem.
  • XSS armazenado O script fica salvo no servidor do site (num comentário, num perfil, num campo de cadastro) e é servido a todo mundo que abrir aquela página. É o mais danoso, porque atinge muitos visitantes sem exigir novo clique.
  • XSS baseado em DOM O ataque acontece inteiramente no navegador da vítima: um código do próprio site processa a entrada de forma insegura e dispara o script sem que ele chegue a passar pelo servidor. É mais difícil de perceber de fora.

O que está em jogo para o negócio

3 tipos
de XSS: refletido, armazenado e baseado em DOM (OWASP)
2 em 3
das aplicações web apresentavam XSS no levantamento do OWASP Top 10 2017 (OWASP)
$ 4,44 mi
custo médio global de uma violação de dados (IBM, 2025)

O XSS importa porque inverte a relação de confiança: é o próprio site da empresa, aquele em que o cliente confia, que entrega o golpe. Um script bem colocado sequestra a sessão do usuário logado (assumindo a conta dele), rouba dados de formulário ou redireciona para uma página falsa, tudo sob o nome e a aparência da marca. O prejuízo não é só técnico: é a confiança do cliente e a reputação que sustentam o negócio, sem contar a exposição de dados pessoais e o custo médio de US$ 4,44 milhões por violação no mundo (IBM, 2025). Por isso o XSS integra a Injeção, a 3ª maior categoria de risco do OWASP Top 10, e é tratado com o mesmo rigor de uma falha que abre a porta do cliente.

Como se proteger do cross-site scripting

A defesa contra o XSS parte de uma regra simples: o site nunca pode repetir, como se fosse código, um texto que veio de fora. Isso se garante com camadas de disciplina no desenvolvimento:

  1. Codifique a saída (output encoding)É a correção central. Antes de exibir qualquer conteúdo vindo do usuário, o site o converte para texto puro, de modo que um script apareça como letras na tela, e não seja executado. Trata o dado como dado, nunca como comando.
  2. Valide e trate a entradaVerifique e limpe o que os usuários enviam, recusando conteúdo com marcações e comandos onde só se espera texto. É a camada complementar à codificação de saída.
  3. Adote uma Política de Segurança de Conteúdo (CSP)A CSP diz ao navegador quais scripts têm permissão para rodar naquele site. Mesmo que um XSS passe, ela reduz o que o script consegue fazer, funcionando como uma trava adicional.
  4. Adicione um firewall de aplicação web (WAF)O WAF filtra o tráfego da aplicação e bloqueia padrões conhecidos de XSS antes que cheguem ao usuário. É uma camada extra, não um substituto da correção no código.
  5. Teste continuamenteVarredura automatizada e teste de invasão encontram os pontos de eco vulneráveis antes do atacante. O XSS some do site quando é procurado de propósito, campo a campo.

Na prática

No XSS, quem ataca o seu cliente é o seu próprio site. Por isso a defesa não é desconfiar do visitante, e sim nunca deixar o site repetir, como se fosse dele, um texto que veio de fora. O campo de comentário mais inocente, exibido sem tratamento, é o suficiente para transformar a confiança na marca em vetor de ataque.

Como a Zamak protege contra o XSS

A Zamak Technologies protege a relação de confiança que o XSS explora, atuando ao lado da sua equipe de desenvolvimento, sem substituí-la: testa as aplicações em busca dos pontos de eco vulneráveis, aponta a correção na origem (codificação de saída, validação de entrada, Política de Segurança de Conteúdo) e reforça o ambiente com uma camada de firewall de aplicação web. Em vez de descobrir a falha quando um cliente for atingido, a sua empresa a encontra e fecha antes. É parte da Cibersegurança gerenciada do Método Zamak, e um bom ponto de partida é o diagnóstico de cibersegurança.

Perguntas frequentes sobre cross-site scripting (XSS)

O que é XSS, em uma frase?
É um ataque web em que o criminoso injeta um script malicioso dentro de um site confiável, para que ele rode no navegador dos visitantes e roube a sessão, as senhas ou os dados deles, tudo sob o nome do site legítimo.
Qual a diferença entre XSS e injeção de SQL?
As duas são falhas de injeção, mas miram alvos diferentes. O XSS ataca o navegador do visitante do site, para roubar a sessão ou os dados dele. A injeção de SQL ataca o banco de dados da empresa, para roubar ou alterar dados. Uma golpeia o cliente; a outra, o cofre.
Quais são os três tipos de XSS?
Refletido (o script vem num link malicioso e atinge um alvo por vez), armazenado (o script fica salvo no site e atinge todo visitante da página, o mais danoso) e baseado em DOM (o ataque acontece inteiramente no navegador da vítima, sem passar pelo servidor).
O XSS pode roubar senhas e contas?
Sim. Rodando no navegador da vítima, o script pode capturar o que ela digita, incluindo senhas, e roubar os cookies de sessão, o que permite ao atacante se passar por ela e assumir a conta sem precisar da senha.
Como proteger o meu site do XSS?
Com disciplina de código somada a testes: codificar toda saída para que texto do usuário nunca vire script, validar a entrada, adotar uma Política de Segurança de Conteúdo (CSP) e testar continuamente as aplicações. Uma camada de firewall de aplicação web reforça o conjunto.