Förberedda satser
Efter att ha upptäckt SQL-injektionssårbarheten behöver CityBook Libraries din hjälp med att säkra boksökningsfunktionen. Du ska byta ut enkla Statement-objekt mot PreparedStatement för att förhindra injektionsattacker.
Klassen HikariSetup är redan konfigurerad.
Den här övningen är en del av kursen
Fråga en PostgreSQL-databas i Java
Övningsinstruktioner
- Använd en platshållare för titelparametern.
- Skapa ett
PreparedStatementfrån anslutningen. - Ange parametern
titleför den förberedda satsen.
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();
// Set the parameter in the query
String query = "SELECT * FROM books WHERE title = ____";
// Create the prepared statement
try (Connection conn = ds.getConnection();
PreparedStatement pstmt = ____.____(query)) {
// Set the title parameter
pstmt.____(____, "Clean Code");
try (ResultSet rs = pstmt.executeQuery()) {
while (rs.next()) {
System.out.printf("ID: %d, Title: %s (%d)%n", rs.getInt("book_id"), rs.getString("title"), rs.getInt("publication_year"));
}
}
}
}
}