Aan de slagGa gratis aan de slag

De statements hacken

CityBook Libraries ontwikkelt een zoekfunctie waarmee gebruikers boeken op titel kunnen opzoeken. Je maakt je zorgen over de veiligheid van het systeem, dus je besluit het te testen tegen SQL-injectie-aanvallen.

Controleer of je ongeautoriseerde gegevens kunt ophalen met SQL-injectie. De HikariSetup-klasse is al geconfigureerd.

Deze oefening maakt deel uit van de cursus

Query's uitvoeren op een PostgreSQL-database in Java

Cursus bekijken

Oefeninstructies

  • Pas titleParameter aan om een voorwaarde te injecteren waarmee je alle boeken kunt lezen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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"));
            }
        }
    }
}
Code bewerken en uitvoeren