НачатьНачать бесплатно

Взлом запросов

Библиотеки CityBook разрабатывают функцию поиска, которая позволяет пользователям находить книги по названию. Вы обеспокоены безопасностью системы и решили проверить её на уязвимость к SQL-инъекциям.

Проверьте, можно ли получить несанкционированный доступ к данным с помощью SQL-инъекции. Класс HikariSetup уже настроен.

Это упражнение является частью курса

Работа с базой данных PostgreSQL на Java

Посмотреть курс

Инструкции к упражнению

  • Измените titleParameter так, чтобы внедрить условие, при котором будут возвращаться все книги.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

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"));
            }
        }
    }
}
Редактировать и запускать код