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:
- 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();
-
Validação e filtragem de dados de entrada — verificar o formato e conteúdo dos dados antes de os usar em consultas.
-
Utilização de frameworks ORM (por exemplo, Hibernate) — estes geram consultas seguras automaticamente.
-
Minimização de privilégios de acesso — as contas da base de dados devem ter os privilégios mínimos necessários.
-
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.