Banco de Dados: Como podemos proteger uma aplicação Java de ataques de SQL Injection?

Questão

Como podemos proteger uma aplicação Java de ataques de SQL Injection?

Alternativas

A) Executando todas as consultas como administrador do banco de dados.

B) Utilizando a classe ResultSet.

C) Concatenando strings para construir consultas SQL.

D) Utilizando a classe Statement.

E) Utilizando a classe PreparedStatement.

98%
Explicação

Para proteger uma aplicação Java contra SQL Injection, a principal medida é evitar montar SQL por concatenação de strings com dados vindos do usuário. Em vez disso, deve-se usar consultas parametrizadas.

  • A classe PreparedStatement permite escrever o SQL com placeholders (ex.: WHERE usuario = ?) e depois preencher os valores com métodos como setString, setInt, etc.
  • Assim, o driver do banco trata os valores como dados (e não como parte do comando SQL), reduzindo drasticamente a possibilidade de injeção.

Analisando as alternativas:

  • A: executar como administrador piora a segurança (privilégios excessivos).
  • B: ResultSet apenas lê resultados, não previne injeção.
  • C: concatenar strings é justamente a prática vulnerável.
  • D: Statement com concatenação é mais suscetível a SQL Injection.
  • E: PreparedStatement é a forma correta (parametrização).

Alternativa correta: (E).

Questões relacionadas

Ver últimas questões

Comece a estudar de forma inteligente hoje mesmo

Resolva questões de concursos e vestibulares com IA, gere simulados personalizados e domine os conteúdos que mais caem nas provas.

Cancele quando quiser.