İfadeleri hacklemek
CityBook Libraries, kullanıcıların başlığa göre kitap aramasını sağlayan bir arama özelliği geliştiriyor. Sistem güvenliğinden endişe duyduğun için bunu SQL injection saldırılarına karşı test etmeye karar verdin.
SQL injection kullanarak yetkisiz verileri çekip çekemeyeceğini doğrula. HikariSetup sınıfı zaten yapılandırıldı.
Bu egzersiz, kursun bir parçasıdır
Java ile PostgreSQL Veritabanına Sorgu Yazma
Egzersiz talimatları
- Tüm kitapları okuyabilmeye izin verecek bir koşul enjekte etmek için
titleParameter'ı değiştir.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
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"));
}
}
}
}