CommencerCommencer gratuitement

Piratage des instructions

CityBook Libraries développe une fonctionnalité de recherche permettant aux utilisateurs de trouver des livres par titre. Vous vous souciez de la sécurité du système, vous avez donc décidé de le tester face aux attaques par injection SQL.

Vérifiez si vous pouvez récupérer des données non autorisées via une injection SQL. La classe HikariSetup est déjà configurée.

Cet exercice fait partie du cours

Interroger une base de données PostgreSQL en Java

Afficher le cours

Instructions

  • Modifiez titleParameter pour injecter une condition qui permettra de lire tous les livres.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

public class Main {
    public static void main(String[] args) throws SQLException {
        HikariDataSource ds = HikariSetup.createDataSource();

		// Change the title to inject a condition that will allow reading all books
        String titleParameter = "To Kill a Mockingbird";

        String query = "SELECT * FROM books WHERE title = '" +  titleParameter + "'";

        try (Connection conn = ds.getConnection()) {
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery(query);
            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