Pular para o conteúdo principal

Questão de Banco de Dados — Segurança — FCC 2017

Banco de DadosSegurança
Código
fc036788
Banca
FCC
Órgão
DPE-RS
Ano
2017
Nível
Superior
Cargo
Analista - Segurança da Informação
Nas aplicações web, as falhas de SQL Injection são introduzidas quando os desenvolvedores de software criam consultas dinâmicas a banco de dados que incluem entrada fornecida pelo usuário. Técnicas eficazes para evitar vulnerabilidades SQL Injection em aplicações web incluem o uso de
  1. Atokens imprevisíveis em cada requisição de usuário.
  2. Breferência direta a objetos por usuário ou sessão.
  3. Cbuffer procedures e stack SQL statements.
  4. Ddirect statements, design patterns e frameworks.
  5. Eprepared statements e stored procedures.
Revelar gabarito e comentário

GabaritoE — prepared statements e stored procedures.

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Prevenção de SQL Injection

Gabarito: letra E. Técnicas eficazes contra SQL Injection incluem o uso de prepared statements (consultas parametrizadas) e stored procedures quando implementados corretamente, pois separam os dados da estrutura SQL, impedindo a injeção de código malicioso. O contexto apresentado destaca o uso de variáveis de ligação (prepared statements) como principal defesa.

Alternativa A — ❌ Incorreta

Tokens imprevisíveis (como tokens CSRF) protegem contra ataques de falsificação de requisição entre sites, mas não impedem SQL Injection, que explora a má construção de consultas SQL com entrada do usuário.

Alternativa B — ❌ Incorreta

A referência direta a objetos (direct object reference) é uma vulnerabilidade em si — expõe identificadores internos sem validação de autorização —, portanto não é uma técnica de prevenção contra SQL Injection.

Alternativa C — ❌ Incorreta

"Buffer procedures" e "stack SQL statements" não são termos técnicos reconhecidos como medidas de segurança contra SQL Injection. Provavelmente confundem com outros conceitos (buffer overflow, pilha de chamadas) que não se aplicam diretamente.

Alternativa D — ❌ Incorreta

Direct statements (declarações diretas, como Statement em Java) são justamente o vetor de ataque, pois concatenam entrada do usuário na string SQL. Design patterns e frameworks podem auxiliar, mas isoladamente não garantem proteção contra injeção.

Alternativa E — ✅ Correta ⟵ GABARITO

Prepared statements (consultas parametrizadas) e stored procedures bem escritas são as técnicas mais eficazes. O contexto cita explicitamente: "O uso de variáveis de ligação (usando comandos parametrizados) protege contra ataques de injeção". As stored procedures, quando não utilizam concatenação dinâmica, também previnem injeção.

Gabarito: letra E

Link permanente: /questoes/fc036788