IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Modifica titleParameter per 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"));
            }
        }
    }
}
Modifica ed esegui il codice