Kom igångKom igång gratis

Att hacka satserna

CityBook Libraries håller på att utveckla en sökfunktion där användare kan söka efter böcker via titel. Du är orolig för systemets säkerhet och har därför bestämt dig för att testa det mot SQL-injektionsattacker.

Kontrollera om du kan hämta obehörig data med hjälp av SQL-injektion. Klassen HikariSetup är redan konfigurerad.

Den här övningen är en del av kursen

Fråga en PostgreSQL-databas i Java

Visa kurs

Övningsinstruktioner

  • Ändra titleParameter så att du injicerar ett villkor som tillåter att alla böcker läses.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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"));
            }
        }
    }
}
Redigera och kör kod