Pular para o conteúdo principal

Questão de Segurança da Informação — Controles de segurança — FUNDATEC 2023

Segurança da InformaçãoControles de segurança
Código
qq897213
Banca
FUNDATEC
Órgão
PROCERGS
Ano
2023
Nível
Superior
Cargo
ANC - Analista em Computação - Ênfase em Segurança da Informação
Analise o código e verifique se as técnicas de programação segura foram implementadas:...$ id = $ _GET['id'];$ query = mysql query ('SELECT table.field FROM table WHERE id =' .$ GET ['id']);...Com base no código apresentado, analise as assertivas abaixo:I. Vulnerabilidade e dependência de pacotes externos.II. Autenticação segura.III. Higienização das entradas de dados.IV. Princípio do menor privilégio.Quais estão INCORRETAS?
  1. AApenas I.
  2. BApenas III.
  3. CApenas I e II.
  4. DApenas III e IV.
  5. EI, II, III e IV.
Revelar gabarito e comentário

GabaritoE — I, II, III e IV.

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

SQL Injection e Ausência de Práticas de Programação Segura

Gabarito: letra E. O código apresentado é vulnerável a SQL injection, pois concatena diretamente a entrada do usuário ($_GET['id']) na consulta SQL. Nenhuma das técnicas de programação segura listadas (I a IV) foi implementada. Todas as assertivas estão INCORRETAS.

Análise das assertivas

Item I — ❌ Incorreto

Vulnerabilidade e dependência de pacotes externos. O código utiliza a extensão mysql_* (depreciada e insegura), considerada uma dependência de pacote externo vulnerável. Além disso, a própria injeção SQL configura uma vulnerabilidade. A técnica de evitar dependência de pacotes inseguros e mitigar vulnerabilidades não foi aplicada, pois o código emprega uma extensão obsoleta e não trata a entrada. Portanto, o item I está incorreto.

Item II — ❌ Incorreto

Autenticação segura. Não há qualquer mecanismo de autenticação no trecho exibido. O código simplesmente recebe um parâmetro id via GET e executa a consulta. Práticas como uso de sessões, tokens, hash de senhas ou MFA estão totalmente ausentes. Logo, a técnica de autenticação segura não foi implementada.

Item III — ❌ Incorreto

Higienização das entradas de dados. A variável $_GET['id'] é utilizada diretamente na string SQL, sem qualquer sanitização, escape ou validação. A técnica de higienização de entradas — que inclui uso de prepared statements, filtragem de tipos ou escapes — não foi aplicada. Isso é a causa direta da vulnerabilidade de SQL injection.

Item IV — ❌ Incorreto

Princípio do menor privilégio. Considerando que o código provavelmente se conecta ao banco de dados com credenciais de alto privilégio (já que não há limitação explícita), a técnica de conceder apenas os privilégios mínimos necessários não foi implementada. Em ambientes seguros, a conta do banco deveria ter permissões restritas apenas ao que a aplicação precisa.

Conclusão

Todas as assertivas (I, II, III e IV) estão incorretas, pois nenhuma das técnicas de programação segura foi empregada. A alternativa que contempla todas elas é a letra E.

Gabarito: letra E

Link permanente: /questoes/qq897213