Sobes.tech
Junior — Middle

De que formas é que se pode proteger uma base de dados contra injeções SQL?

sobes.tech IA

Resposta da IA

A proteção da base de dados contra injeções SQL é um aspeto importante de segurança. As principais formas de proteção em Java:

  1. Utilização de declarações preparadas (PreparedStatement) — os parâmetros da consulta são passados separadamente, o que exclui a possibilidade de injetar código SQL malicioso.
String sql = "SELECT * FROM users WHERE username = ? AND password = ?";
PreparedStatement pstmt = connection.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
ResultSet rs = pstmt.executeQuery();
  1. Validação e filtragem de dados de entrada — verificar o formato e conteúdo dos dados antes de os usar em consultas.

  2. Utilização de frameworks ORM (por exemplo, Hibernate) — estes geram consultas seguras automaticamente.

  3. Minimização de privilégios de acesso — as contas da base de dados devem ter os privilégios mínimos necessários.

  4. Atualização e patches regulares — manter o software da base de dados e os controladores atualizados.

Estes métodos em conjunto reduzem significativamente o risco de uma injeção SQL bem-sucedida.