FC ConcursosFC Concursos

Questão FC373025

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, desa

Sistema de Gerenciamento de Banco de Dados (SGBD)

FCC · 2022

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. SET SQL_INJECTION=FALSE;
  2. SET ALLOW_LITERALS NONE;
  3. SET INPUT_MODE WITH LITERALS=FALSE;
  4. SET INPUT_MODE=PREPAREDSTATEMENT ALLOW_LITERALS=FALSE;
  5. SET ALLOW_LITERALS=OFF;
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

O comando SET ALLOW_LITERALS NONE no H2 desativa o uso de literais embutidos em instruções SQL, obrigando a passagem de valores via parâmetros (placeholders como ?). Isso impede que dados do usuário sejam concatenados diretamente na query, reduzindo a superfície de ataque para SQL Injection.

Na prática, após executar esse comando a tentativa de executar uma instrução contendo valores literais (por exemplo, 'senha' ou números escritos diretamente) gera erro, forçando o desenvolvedor a usar PreparedStatement ou binding de parâmetros. Assim, o mecanismo garante que a entrada seja tratada como dado e não como código SQL.

É uma medida de hardening do banco (configuração por sessão/instância) e complementa boas práticas como validação e uso consistente de consultas parametrizadas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo