Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Mô phỏng parameterized query

    Parameterized query (mô phỏng)

    Phòng thủ SQLi mạnh nhất là parameterized query: dữ liệu được truyền tách rời khỏi câu lệnh và được escape an toàn. Hãy mô phỏng: thay mỗi dấu ? trong mẫu câu lệnh bằng tham số tương ứng (theo thứ tự), bọc trong nháy đơn, và escape nháy đơn bên trong bằng cách nhân đôi (' -> '').

    • Dòng 1: mẫu câu lệnh (chứa các dấu ?).
    • Các dòng tiếp theo: lần lượt các tham số.

    Nếu hết tham số mà còn ?, giữ nguyên ?.

    Ví dụ

    SELECT * FROM u WHERE name=?
    O'Brien
    

    -> SELECT * FROM u WHERE name='O''Brien'

    • Định dạng đầu vào:

      Dòng 1 là mẫu câu lệnh; mỗi dòng sau là một tham số.

    • Ràng buộc đầu vào:

      Số tham số <= 10. Mỗi dòng <= 500 ký tự.

    • Định dạng đầu ra:

      In câu lệnh đã thay tham số an toàn.

    Ví dụ:

    Đầu vào:

    SELECT * FROM u WHERE name=?
    O'Brien
    

    Đầu ra:

    SELECT * FROM u WHERE name='O''Brien'

    Giải thích:

    Dấu ? được thay bằng 'O''Brien' với nháy đơn nhân đôi để an toàn.

    Đang tải editor...