Pular para o conteúdo principal

Questão de TI - Desenvolvimento de Sistemas — Javascript — Com. Org. (IFSP) 2026

TI - Desenvolvimento de SistemasJavascript
Código
qa431870
Banca
Com. Org. (IFSP)
Órgão
IF SP
Ano
2026
Cargo
Ana TI ( )

Durante um hackathon de segurança, uma das equipes construiu rapidamente uma funcionalidade de comentários para um sistema de compras.

 

Para permitir o uso de formatação HTML nos comentários, o desenvolvedor implementou o seguinte template:

 

<form method=”POST” action=”/

comentario/”>

 {% csrf_token %}

 <textarea name=”texto”></textarea>

 <button type=”submit”>Enviar</button>

</form>

 

<p>Último comentário:</p>

<div>{{ ultimo_comentario|safe }}</div>

 

Após algum tempo, um usuário publicou o seguinte texto no conteúdo do comentário:

 

Produto muito bom!

<script>

 fetch(‘/transferir?valor=100&accou

nt=8743291’, {method: ‘POST’, credentials:

‘include’});

</script>

 

Outros usuários que acessaram a página tiveram transferências não autorizadas de suas contas. Com base nesse cenário, qual opção explica a falha explorada, indicando o tipo de ataque e como corrigi-la sem perder a possibilidade de exibir algum HTML formatado nos comentários?

  1. AO ataque é um CSRF, pois o script realiza uma requisição POST autenticada. A correção é ativar o middleware de proteção CSRF e validar o token de cada requisição.
  2. BO ataque é um XSS, pois o código do comentário é executado no navegador de outros usuários. A correção é filtrar e limpar o HTML permitido (mantendo apenas tags seguras, como <b> ou <i>).
  3. CO ataque é um XSS, pois o script é executado logo após o envio do comentário. A correção é utilizar o auto-escape com a exibição do comentário realizada pelo código: <div>{{ ultimo_comentario }}</div>
  4. DÉ uma falha de validação de entrada por CSRF, pois o sistema não restringe o conteúdo do comentário. A correção é bloquear qualquer HTML e exibir apenas texto puro.
Revelar gabarito e comentário

GabaritoB — O ataque é um XSS, pois o código do comentário é executado no navegador de outros usuários. A correção é filtrar e limpar o HTML permitido (mantendo apenas tags seguras, como <b> ou <i>).

Link permanente: /questoes/qa431870