CommencezCommencez gratuitement

Instructions préparées

Après avoir découvert une vulnérabilité d'injection SQL, CityBook Libraries a besoin que vous sécurisiez la fonction de recherche de livres. Vous passerez des objets Statement simples à PreparedStatement pour empêcher les attaques par injection.

La classe HikariSetup est déjà configurée.

Cette activité fait partie du cours

Interroger une base de données PostgreSQL en Java

Voir le cours

Instructions de l’exercice

  • Utilisez un espace réservé pour le paramètre de titre.
  • Créez un PreparedStatement à partir de la connexion.
  • Définissez le paramètre title pour l'instruction préparée.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

public class Main {
    public static void main(String[] args) throws SQLException {
        HikariDataSource ds = HikariSetup.createDataSource();
        // Set the parameter in the query
        String query = "SELECT * FROM books WHERE title = ____";
        // Create the prepared statement
        try (Connection conn = ds.getConnection();
            PreparedStatement pstmt = ____.____(query)) {
            // Set the title parameter
            pstmt.____(____, "Clean Code");
            try (ResultSet rs = pstmt.executeQuery()) {
                while (rs.next()) {
                    System.out.printf("ID: %d, Title: %s (%d)%n", rs.getInt("book_id"), rs.getString("title"), rs.getInt("publication_year"));
                }
            }
        }
    }
}
Modifier et exécuter le code