
Scripting entre sites, conhecido como XSS (Cross-Site Scripting), é uma vulnerabilidade de segurança em aplicações web que permite a um atacante injetar código malicioso (normalmente JavaScript) em páginas vistas por outros utilizadores.
Quando a página é carregada, o código malicioso é executado no navegador da vítima, como se fosse conteúdo legítimo do site. Isto torna o XSS particularmente perigoso, porque explora a confiança do utilizador no site vulnerável.
Porque o XSS é uma vulnerabilidade grave
Ao contrário de falhas que afetam apenas o servidor, o XSS ataca diretamente os utilizadores finais. Um único ponto vulnerável pode afetar milhares de visitantes.
Com XSS, um atacante pode:
- Roubar cookies de sessão
- Roubar credenciais de login
- Sequestrar contas de utilizadores
- Redirecionar para sites maliciosos
- Executar ações em nome da vítima
- Distribuir malware
- Comprometer contas administrativas
Em lojas online, pode resultar em roubo de contas de clientes e fraude.
Como funciona um ataque XSS
O funcionamento típico é o seguinte:
- A aplicação aceita input do utilizador (comentários, formulários, pesquisa, URLs)
- Esse input não é devidamente validado ou filtrado
- O atacante insere código malicioso
- O código fica armazenado ou refletido na página
- Quando outro utilizador visita a página, o script é executado no seu browser
O navegador não distingue código legítimo de código injetado.
Tipos principais de XSS
XSS Refletido
O código malicioso é enviado num pedido (ex.: URL) e refletido imediatamente na resposta. Normalmente exige que a vítima clique num link.
XSS Armazenado (Persistente)
O código é guardado no servidor (ex.: comentários, perfis, mensagens). Afeta todos os utilizadores que visualizam o conteúdo.
XSS Baseado em DOM
O ataque ocorre inteiramente no lado do cliente, através da manipulação do DOM pelo JavaScript da própria página.
Onde o XSS aparece com mais frequência
XSS é comum em:
- Campos de comentários
- Formulários de contacto
- Pesquisas internas
- Perfis de utilizador
- Sistemas de chat
- URLs com parâmetros
- Backoffices mal protegidos
Aplicações com muito conteúdo gerado por utilizadores são alvos frequentes.
Consequências de uma falha XSS
Os impactos incluem:
- Roubo de sessões autenticadas
- Acesso não autorizado a contas
- Fraude financeira
- Alteração de conteúdos do site
- Distribuição de malware
- Perda de confiança dos utilizadores
- Incumprimento do RGPD
Embora o XSS não execute código no servidor, os danos para os utilizadores podem ser elevados.
Sinais de possível vulnerabilidade XSS
Alguns indícios técnicos:
- Scripts visíveis em campos de texto
- Comportamento estranho após inserir certos caracteres
- Alertas inesperados no navegador
- Redirecionamentos não autorizados
- Cookies roubados ou sessões encerradas
Muitas falhas só são detetadas através de testes de segurança.
Como prevenir ataques XSS
A prevenção é conhecida e eficaz quando aplicada corretamente:
- Escapar e codificar outputs (HTML encoding)
- Validar rigorosamente todos os inputs
- Utilizar frameworks modernas com proteção XSS
- Implementar Content Security Policy (CSP)
- Evitar inserir input diretamente em JavaScript
- Utilizar cookies com flags HttpOnly e Secure
- Atualizar CMS, temas e plugins
- Realizar testes de segurança regulares
Nunca confiar em dados fornecidos pelo utilizador.
XSS e lojas online
Em lojas online, o XSS pode ser usado para:
- Roubar sessões de clientes autenticados
- Capturar dados introduzidos em formulários
- Redirecionar clientes para páginas falsas
- Comprometer contas administrativas
- Preparar ataques mais graves (phishing, fraude)
É uma das vulnerabilidades mais exploradas em plataformas de e-commerce.
Importância do XSS na segurança da internet
O XSS está presente no OWASP Top 10 há muitos anos, devido à sua frequência e impacto. Apesar de ser uma falha conhecida, continua a existir em aplicações modernas por má validação de dados e desenvolvimento inseguro.
Conclusão
Scripting entre Sites (XSS) é uma vulnerabilidade que permite executar código malicioso no navegador dos utilizadores através de sites vulneráveis. Embora não ataque diretamente o servidor, pode causar roubo de contas, fraude e perda de confiança.
A prevenção passa por validação rigorosa, codificação correta de dados e boas práticas de desenvolvimento seguro. Ignorar XSS é expor utilizadores e negócios a riscos reais.
