Forzare le query
CityBook Libraries sta sviluppando una funzionalità di ricerca che permette agli utenti di trovare i libri per titolo. Sei preoccupato per la sicurezza del sistema, quindi hai deciso di testarla contro attacchi di SQL injection.
Verifica se puoi recuperare dati non autorizzati usando una SQL injection. La classe HikariSetup è già configurata.
Questo esercizio fa parte del corso
Eseguire query su un database PostgreSQL in Java
Istruzioni dell'esercizio
- Modifica
titleParameterper iniettare una condizione che consenta di leggere tutti i libri.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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"));
}
}
}
}