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
Övningsinstruktioner
- Ändra
titleParameterså 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"));
}
}
}
}