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
Instructions de l’exercice
- Modifiez
titleParameterpour 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"));
}
}
}
}