CommencezCommencez gratuitement

Piratage des instructions

CityBook Libraries développe une fonction de recherche qui permet aux utilisateurs de trouver des livres par titre. Vous vous souciez de la sécurité du système, alors vous avez décidé de la mettre à l'épreuve contre des attaques par injection SQL.

Vérifiez si vous pouvez récupérer des données non autorisées à l'aide d'une injection SQL. 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

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

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

		// 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