XSS (Cross-Site Scripting) é uma falha em que o atacante injeta scripts maliciosos em uma página web que acabam sendo executados no navegador de outros usuários. Com isso ele pode roubar sessões, credenciais ou dados, redirecionar a vítima ou agir em nome dela no site. Está entre os riscos do OWASP Top 10. A defesa combina escape e sanitização de dados, Content Security Policy (CSP) e testes de intrusão que encontram a falha antes do atacante.
Sempre que uma aplicação exibe conteúdo que veio de um usuário — um comentário, um nome, um parâmetro na URL — sem tratá-lo com cuidado, abre-se uma porta. Se o navegador interpretar esse conteúdo como código em vez de texto, o atacante consegue rodar o script dele na página, com todas as permissões do usuário que está ali. É esse o coração do XSS.
Os tipos de XSS
O ataque tem três variações principais, que se diferenciam por onde o script malicioso mora:
- Refletido: o script chega em um parâmetro da requisição (uma URL, um campo de busca) e é "refletido" de volta na resposta. A vítima precisa clicar em um link preparado para disparar o ataque.
- Armazenado: o script malicioso é gravado no servidor — em um comentário, um perfil, uma mensagem — e executa toda vez que alguém abre a página. É o mais perigoso, porque atinge muitos usuários sem esforço.
- DOM: a falha está no próprio JavaScript do lado do cliente, que manipula a página com dados não confiáveis. O servidor nem chega a ver o payload malicioso.
O que o atacante consegue
Rodar código no navegador da vítima, no contexto do site legítimo, dá ao atacante um poder considerável:
- Roubo de sessão: capturar cookies ou tokens e entrar na conta da vítima sem precisar da senha.
- Roubo de dados: ler informações da página, formulários preenchidos ou dados sensíveis exibidos ao usuário.
- Ações em nome da vítima: executar operações no site como se fosse o próprio usuário logado.
- Redirecionamento e phishing: levar a vítima a páginas falsas ou injetar conteúdo enganoso na página real.
Como prevenir
XSS é uma falha de tratamento de dados, e a defesa começa exatamente aí — reforçada por controles no navegador e por testes que confirmam que nada passou:
- Escape e sanitização: tratar todo dado que veio do usuário antes de exibi-lo, para que seja interpretado como texto e nunca como código. É a base da prevenção.
- Content Security Policy (CSP): uma política que restringe quais scripts o navegador pode executar, limitando o estrago mesmo que uma falha escape.
- Pentest: um teste de intrusão coloca alguém procurando ativamente por pontos de injeção, encontrando o XSS antes que um atacante o faça. É o que faz o pentest OWASP do Argos.
Onde o Argos entra
O Argos, da NoBug, faz pentest com metodologia OWASP: uma equipe testa a sua aplicação em busca de falhas como XSS, SQL Injection e os demais riscos do OWASP Top 10, e entrega um relatório claro do que corrigir e como. Todo o trabalho roda com os dados no Brasil, e o time acompanha a correção até a falha ser fechada de verdade.
- XSS injeta scripts maliciosos que rodam no navegador de outros usuários da página.
- Existem três tipos: refletido, armazenado e DOM — o armazenado é o mais perigoso.
- Com ele o atacante rouba sessões, dados e age em nome da vítima no site.
- Previna-se com escape e sanitização, CSP e pentest — é um risco do OWASP Top 10.