Questão de Segurança da Informação — Ataques e ameaças — FGV 2021
Segurança da Informação›Ataques e ameaças
Código
fg038323
Banca
FGV
Órgão
Banestes
Ano
2021
Nível
Superior
Cargo
Analista em Tecnologia da Informação - Segurança da Informação
SQL Injection é uma técnica de ataque na qual o invasor se aproveita de falhas em aplicativos web que interagem com bases de dados para inserir uma instrução SQL personalizada e indevida.Para evitar essa ameaça de segurança, é necessário:
Autilizar expressões regulares para cifrar as variáveis enviadas para o sistema;
Bconcatenar diretamente o input do usuário com a consulta SQL;
Cencapsular as entradas de dados dentro de aspas simples ao montar dinamicamente consultas SQL;
Dretornar no corpo das respostas HTTP as mensagens de erro em bancos de dados;
Evalidar todas as entradas de dados, como formulários ou URL da aplicação.
Revelar gabarito e comentário▾
GabaritoE — validar todas as entradas de dados, como formulários ou URL da aplicação.
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 Prevenção
Gabarito: letra E. O SQL Injection explora falhas de validação de entradas do usuário para inserir comandos SQL maliciosos. A principal medida preventiva é validar rigorosamente todas as entradas de dados (formulários, parâmetros de URL, etc.) – prática que a alternativa E descreve corretamente. O conteúdo de apoio (C1) confirma: "A prevenção envolve uso de consultas parametrizadas e validação de entrada."
Expressões regulares podem ajudar na validação, mas "cifrar as variáveis" não é a defesa contra injeção de SQL; cifra protege a confidencialidade, não a integridade da consulta.
Alternativa B — ❌ Incorreta
Concatenar diretamente o input do usuário com a consulta SQL é a causa do SQL Injection – exatamente o que se deve evitar.
Alternativa C — ❌ Incorreta
Encapsular entradas com aspas simples não é suficiente; atacantes podem usar escapes (ex.: ' OR 1=1 --). A forma segura é usar consultas parametrizadas (prepared statements).
Alternativa D — ❌ Incorreta
Exibir mensagens de erro de banco de dados no corpo da resposta HTTP vaza informações que auxiliam o atacante (ex.: nome de tabelas, estrutura da query).
Alternativa E — ✅ Correta ⟵ GABARITO
Validar todas as entradas (tanto de formulários quanto de URL) é a primeira linha de defesa contra injeção de SQL, impedindo que dados maliciosos sejam interpretados como parte do comando SQL.