O Cross-Site-Scripting, também conhecido como (XSS), é um dos defeitos de segurança mais comumente encontrados em aplicações web, permitindo utilizar uma aplicação vulnerável para transportar código malicioso até o navegador de outro usuário. Dependendo de como o código malicioso é transportado até o navegador da vítima e do local em que a vulnerabilidade ocorre (no servidor ou no cliente), um XSS pode ser classificado de vários tipos. O tipo de XSS que o código malicioso é enviado na URL ou no cabeçalho HTTP, como parte da requisição, explorando um parâmetro que é exibido sem tratamento na página resultante, é o:
- A)XSS baseado em DOM;
Errada: XSS baseado em DOM ocorre quando a vulnerabilidade está no código JavaScript do próprio cliente, e não quando o payload vem na requisição e é refletido pelo servidor.
- B)XSS refletido;
Certa: o script malicioso vem na URL ou em cabeçalho HTTP e é devolvido na resposta sem tratamento, caracterizando XSS refletido.
- C)XSS armazenado;
Errada: XSS armazenado é persistido no servidor, como em banco de dados ou comentários salvos, e depois entregue a várias vítimas.
- D)XCS ou Cross Chanel Scripting;
Errada: "XCS" não é a classificação padrão de XSS cobrada em segurança web, sendo um distrator conceitualmente fora do tema.
- E)XSS baseado em CSRF.
Errada: CSRF é outra classe de ataque, voltada a forçar requisições indevidas em nome do usuário, e não à injeção e execução de script no navegador.
Gabarito: B
XSS é um ataque em que um conteúdo malicioso, normalmente JavaScript, entra na página e acaba sendo executado no navegador de outra pessoa. A ideia é simples e chata: a aplicação aceita um dado sem higienização adequada e depois o mostra para o usuário como se fosse conteúdo legítimo. Quando isso acontece, o atacante pode roubar sessão, redirecionar a vítima ou manipular a interface. Na classificação mais cobrada, o XSS pode ser refletido, armazenado ou baseado em DOM. O ponto-chave aqui é identificar onde o ataque acontece e como o payload chega até a vítima. Se o código malicioso vai na própria requisição, por exemplo na URL ou em cabeçalho HTTP, e a página devolve esse valor na resposta sem tratar, você está diante do XSS refletido. Esse tipo é chamado de "refletido" porque o dado malicioso entra e sai quase na mesma hora, como um espelho mal-intencionado. A vítima clica em um link preparado pelo atacante, o servidor apenas "reflete" o parâmetro vulnerável na resposta, e o script é executado no navegador. Não fica gravado no banco, nem depende necessariamente de manipulação do DOM no cliente. Por isso o gabarito é a letra B. Em termos doutrinários de segurança web, a distinção clássica é: refletido na resposta imediata, armazenado persistido no servidor e DOM-based manipulado no lado do cliente. A banca costuma cobrar exatamente essa diferença de transporte do payload e local da falha.