SQL Injection: Mối nguy hiểm thầm lặng trong Lập Trình Web

8:30 24/05/2025

SQL Injection (SQLi) là một kỹ thuật tấn công mạng phổ biến, cho phép kẻ tấn công thực thi các câu lệnh SQL độc hại trong hệ thống cơ sở dữ liệu của ứng dụng web. Mặc dù đã được cảnh báo từ lâu, nhưng SQLi vẫn tiếp tục là mối đe dọa nguy hiểm do việc lập trình thiếu an toàn.

SQL Injection hoạt động như thế nào?

Kẻ tấn công lợi dụng điểm yếu trong việc xử lý dữ liệu đầu vào để “chèn” câu lệnh SQL bất hợp pháp vào truy vấn mà hệ thống đang thực hiện. Nếu không có biện pháp kiểm soát chặt chẽ, truy vấn này có thể được thực thi trực tiếp trên cơ sở dữ liệu. 

Ví dụ minh họa

Giả định: hệ thống đăng nhập sử dụng PHP và MySQL

Người dùng nhập:

Truy vấn trở thành:

Dấu — biến phần sau thành chú thích SQL → kiểm tra mật khẩu bị vô hiệu → truy cập trái phép tài khoản admin.

Hậu quả của SQL Injection

  • Truy xuất hoặc chỉnh sửa dữ liệu nhạy cảm (hồ sơ người dùng, bảng lương…)
  • Xóa toàn bộ cơ sở dữ liệu
  • Chiếm quyền quản trị hệ thống
  • Chèn mã độc/phần mềm gián điệp
  • Tạo cửa hậu (backdoor)

Cách phòng tránh hiệu quả

Không nên:

  • Nối chuỗi trực tiếp giữa dữ liệu đầu vào và câu lệnh SQL

Nên:

Sử dụng Prepared Statements (Tham số hóa truy vấn)

Đây là cách an toàn và chuẩn mực nhất.

Dùng ORM/Query Builder

Ví dụ với Laravel:

Kiểm tra và lọc đầu vào (Input Validation)

  • Hạn chế độ dài ký tự
  • Loại bỏ ký tự đặc biệt không cần thiết
  • Dùng hàm htmlspecialchars() hoặc filter_input()

Giới hạn quyền tài khoản DB

  • Tài khoản kết nối từ ứng dụng không nên có quyền DROP, DELETE, UPDATE toàn bảng nếu không cần thiết

Nhật ký truy cập và cảnh báo

  • Ghi log các truy vấn bất thường
  • Phân tích lưu lượng nghi ngờ

Kết luận

SQL Injection không chỉ là lỗ hổng kỹ thuật, mà còn là lỗi tư duy lập trình thiếu an toàn. Việc giáo dục lập trình viên về bảo mật ngay từ khi bắt đầu học lập trình là cực kỳ quan trọng. Ứng dụng web hiện đại không thể tồn tại mà thiếu bảo mật dữ liệu.

Giảng viên Hà Minh Thủy
Bộ môn Công nghệ thông tin
FPT Polytechnic Thanh Hoá

Đăng ký nhận đề thi thử 2025

Cùng chuyên mục

Đăng ký nhập học tại FPT Polytechnic 2025

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.