Zacznij terazZacznij za darmo

Hakowanie zapytań

Biblioteki CityBook tworzą funkcję wyszukiwania, która pozwala użytkownikom znajdować książki według tytułu. Zależy ci na bezpieczeństwie systemu, dlatego postanawiasz przetestować go pod kątem ataków SQL injection.

Sprawdź, czy uda ci się pobrać nieautoryzowane dane za pomocą SQL injection. Klasa HikariSetup jest już skonfigurowana.

To ćwiczenie jest częścią kursu

Zapytania do bazy danych PostgreSQL w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • Zmień wartość titleParameter, aby wstrzyknąć warunek umożliwiający odczytanie wszystkich książek.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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"));
            }
        }
    }
}
Edytuj i uruchom kod