Sobes.tech
Junior — Middle

De que maneiras é possível prevenir vulnerabilidades relacionadas com a injeção de código SQL através de parâmetros no JDBC?

sobes.tech IA

Resposta da IA

Para prevenir vulnerabilidades relacionadas com a injeção de SQL (SQL Injection) através de parâmetros no JDBC, utilizam-se os seguintes métodos:

  • PreparedStatement — uso de consultas parametrizadas, onde os parâmetros são passados separadamente e não inseridos diretamente na string SQL. Isto impede a interpretação dos parâmetros como código.

  • Validação e escape de dados de entrada — verificar e limpar os dados antes de os usar nas consultas.

  • Uso de ORM — por exemplo, Hibernate, que gera consultas seguras automaticamente.

Exemplo de uso de PreparedStatement:

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();

Este método evita a possibilidade de injetar código SQL malicioso através dos parâmetros.