Pular para o conteúdo principal

Questão de Banco de Dados — SQL — FCC 2022

Banco de DadosSQL
Código
fc066082
Banca
FCC
Órgão
TRT - 23ª REGIÃO (MT)
Ano
2022
Cargo
Analista Judiciário - Área Apoio - Tecnologia da Informação
Para evitar ataques de SQL Injection, em condições ideais, o H2 Database fornece uma maneira de impor o uso de parâmetros ao passar a entrada do usuário para o banco de dados, desabilitando literais incorporadas em instruções SQL, por meio da instrução
  1. ASET SQL_INJECTION=FALSE;
  2. BSET ALLOW_LITERALS NONE;
  3. CSET INPUT_MODE WITH LITERALS=FALSE;
  4. DSET INPUT_MODE=PREPAREDSTATEMENT ALLOW_LITERALS=FALSE;
  5. ESET ALLOW_LITERALS=OFF;
Revelar gabarito e comentário

GabaritoB — SET ALLOW_LITERALS NONE;

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

H2 Database: Prevenção de SQL Injection

Gabarito: letra B. O H2 Database oferece a instrução SET ALLOW_LITERALS NONE para desabilitar literais em comandos SQL, forçando o uso de parâmetros e prevenindo ataques de injeção de SQL. Essa é a forma correta de ativar o modo seguro.

A questão exige conhecimento da sintaxe específica do H2. Abaixo, a análise de cada alternativa.

Alternativa A — ❌ Incorreta

SET SQL_INJECTION=FALSE; — Esse comando não existe no H2. Não é uma instrução válida para controle de literais.

Alternativa B — ✅ Correta ⟵ GABARITO

SET ALLOW_LITERALS NONE; — É a sintaxe correta. A palavra-chave NONE desabilita completamente literais no SQL, obrigando o uso de parâmetros preparados (bind variables).

Alternativa C — ❌ Incorreta

SET INPUT_MODE WITH LITERALS=FALSE; — Comando inexistente. O H2 não possui essa instrução. O modo de entrada não é configurado assim.

Alternativa D — ❌ Incorreta

SET INPUT_MODE=PREPAREDSTATEMENT ALLOW_LITERALS=FALSE; — Sintaxe inválida. O H2 não aceita essa combinação. O correto é apenas SET ALLOW_LITERALS NONE.

Alternativa E — ❌ Incorreta

SET ALLOW_LITERALS=OFF; — O H2 usa a palavra NONE (ou 0), não OFF. O valor OFF não é reconhecido para esse parâmetro.

PEGA ESSA DICA!

Para lembrar: no H2, o comando é SET ALLOW_LITERALS NONE. Associe a ideia de "não permitir literais" à palavra NONE. É um comando simples, mas específico.

Gabarito: letra B.

Link permanente: /questoes/fc066082