Pular para o conteúdo principal

Questão de Segurança da Informação — Análise de Vulnerabilidade e Gestão de Riscos — FUNDATEC 2026

Segurança da InformaçãoAnálise de Vulnerabilidade e Gestão de Riscos
Código
qg685302
Banca
FUNDATEC
Órgão
IFC-SC
Ano
2026
Nível
Superior
Cargo
Professor EBTT - Informática: Programação Básica e Programação Web
Analise o seguinte trecho de código PHP para conexão com um banco de dados MySQL:Imagem associada para resolução da questãoAssumindo que as credenciais estão corretas, qual é a principal vulnerabilidade de segurança que esse código NÃO aborda ao interagir com o banco de dados?
  1. AAusência de Prepared Statements para prevenir SQL Injection em consultas futuras.
  2. BFalta de tratamento de erros na consulta SQL.
  3. CCredenciais de banco de dados expostas no código.
  4. DNão utilização de HTTPS para a conexão.
  5. EFalta de validação de entrada de dados do usuário.
Revelar gabarito e comentário

GabaritoA — Ausência de Prepared Statements para prevenir SQL Injection em consultas futuras.

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”.

Vulnerabilidades em Conexão com Banco de Dados

Gabarito: letra A. A principal vulnerabilidade de segurança que o código não aborda, considerando a necessidade de prevenir ataques de injeção em consultas futuras, é a ausência de Prepared Statements (consultas parametrizadas), conforme as diretrizes da OWASP para mitigação de riscos de injeção.

O código apresentado realiza apenas a conexão com o banco de dados MySQL. Embora existam outras fragilidades potenciais em um sistema real (como a exposição de credenciais no código-fonte), a questão foca na prevenção de SQL Injection para futuras interações. O uso de Prepared Statements é a defesa primária recomendada para separar os dados fornecidos pelo usuário dos comandos SQL, impedindo que entradas maliciosas sejam interpretadas como parte da consulta.

Alternativa A — ✅ Correta ⟵ GABARITO

Esta é a resposta correta pois a ausência de Prepared Statements é a falha estrutural que permite a ocorrência de SQL Injection. Ao não utilizar consultas parametrizadas, o desenvolvedor deixa a porta aberta para que dados maliciosos alterem a lógica da consulta SQL.

Alternativa B — ❌ Incorreta

O código possui, sim, um tratamento básico de erro na conexão através da estrutura if ($conn->connect_error) { die(...); }, que interrompe a execução e exibe o erro caso a conexão falhe.

Alternativa C — ❌ Incorreta

Embora as credenciais estejam expostas no código (o que é uma má prática de segurança), a questão pede a vulnerabilidade principal ao interagir com o banco de dados visando a prevenção de injeção em consultas futuras. A falta de Prepared Statements é a falha técnica mais crítica para a integridade das consultas em si.

Alternativa D — ❌ Incorreta

O uso de HTTPS é uma medida de segurança da camada de transporte (TLS/SSL) para proteger dados em trânsito entre o cliente e o servidor web. A conexão com o banco de dados (MySQL) ocorre internamente no servidor e não depende diretamente do protocolo HTTPS da aplicação web.

Alternativa E — ❌ Incorreta

Embora a validação de entrada seja uma prática recomendada, ela é considerada uma defesa em profundidade. A defesa técnica mais robusta e específica contra SQL Injection, que garante a separação entre código e dados, é o uso de Prepared Statements.

NÃO CAIA NESSA!

A banca induz o candidato a marcar a alternativa C (credenciais expostas) por ser um erro óbvio de codificação. Contudo, o enunciado pede a vulnerabilidade que o código NÃO aborda ao interagir com o banco de dados visando a prevenção de injeção em consultas futuras. O uso de Prepared Statements é a técnica de segurança específica para esse fim.

PEGA ESSA DICA!

Sempre que o tema for SQL Injection, a palavra-chave que você deve procurar é Prepared Statements ou consultas parametrizadas. É a defesa padrão ouro recomendada pela OWASP para separar dados de comandos.

Link permanente: /questoes/qg685302