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
Oefeninstructies
- Pas
titleParameteraan 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"));
}
}
}
}