FC ConcursosFC Concursos

Questão FC296049

O desenvolvimento de sistemas Web deve incorporar as práticas de segurança da informação para evitar o comprometimento de informações sensíveis. Considere-se que uma aplicação rece

Tópicos Mesclados e Outros Assuntos de Banco de Dados

CESGRANRIO · 2019

O desenvolvimento de sistemas Web deve incorporar as práticas de segurança da informação para evitar o comprometimento de informações sensíveis. Considere-se que uma aplicação recebe um dado não confiável do parâmetro id de uma URL através da execução do método request.getParameter("id") e o usa na construção da consulta SQL a seguir.

 

String query = "SELECT * FROM clientes WHEREclienteID='" + request.getParameter("id") + "'";

 

Essa aplicação está vulnerável e sujeita ao ataque de

  1. XML External Entity (XXE)
  2. Cross-Site Scripting (XXS)
  3. Cross-Site Request Forgery (CSRF)
  4. Injection
  5. Phishing
Mostrar resposta e comentário

Gabarito

D

Comentário do professor

A alternativa correta indica Injection, mais especificamente SQL Injection. Trata‑se da manipulação da estrutura da consulta SQL pela entrada não confiável (request.getParameter("id")), permitindo que um invasor injete operadores ou comandos que alterem a intenção original da query.

Exemplo didático: se o parâmetro id for ' OR '1'='1, a consulta vira SELECT * FROM clientes WHERE clienteID='' OR '1'='1', retornando registros indevidamente ou permitindo outras ações maliciosas.

A prevenção exige, prioritariamente, o uso de parametrização (por exemplo, PreparedStatement), validação/normalização do input (casting para inteiro quando aplicável) e privilégios mínimos no banco. Escapar dados sozinho é menos seguro que parametrizar.

Em suma: a falha ocorre porque o código concatena entrada direta na query; a correção é tratar a entrada como dado, não como parte do comando SQL.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo