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