Junior — Middle
Comment peut-on prévenir les vulnérabilités liées à l'injection de code SQL via des paramètres dans JDBC?
sobes.tech IA
Réponse de l'IA
Pour prévenir les vulnérabilités liées à l'injection SQL via les paramètres dans JDBC, on utilise les méthodes suivantes :
-
PreparedStatement — utilisation de requêtes paramétrées, où les paramètres sont passés séparément et non insérés directement dans la chaîne SQL. Cela empêche l'interprétation des paramètres comme du code.
-
Validation et échappement des données d'entrée — vérification et nettoyage des données avant leur utilisation dans les requêtes.
-
Utilisation d'ORM — par exemple, Hibernate, qui génèrent automatiquement des requêtes sécurisées.
Exemple d'utilisation 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();
Cette approche évite la possibilité d'injecter du code SQL malveillant via les paramètres.