Bắt đầu ngayBắt đầu miễn phí

Tấn công vào câu lệnh

CityBook Libraries đang phát triển tính năng tìm kiếm cho phép người dùng tra cứu sách theo tiêu đề. Bạn lo ngại về bảo mật hệ thống, nên đã quyết định kiểm thử đối với các cuộc tấn công SQL injection.

Hãy xác minh xem bạn có thể truy xuất dữ liệu trái phép bằng SQL injection hay không. Lớp HikariSetup đã được cấu hình sẵn.

Bài tập này là một phần của khóa học

Truy vấn cơ sở dữ liệu PostgreSQL trong Java

Xem khóa học

Hướng dẫn bài tập

  • Thay đổi titleParameter để chèn một điều kiện cho phép đọc toàn bộ sách.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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"));
            }
        }
    }
}
Chỉnh sửa và Chạy Mã