SQL Injection

Định nghĩa

SQL injection là vulnerability trong đó attacker đưa input độc hại vào query để làm database thực thi logic ngoài ý định.

Cách hiểu bằng lời của tôi

Lỗi nằm ở việc để string input trở thành một phần của câu lệnh SQL. Khi input không còn là dữ liệu thuần mà biến thành code/query fragment, attacker có thể đọc, sửa hoặc suy luận dữ liệu.

Cách phòng

  • Dùng prepared statements hoặc parameterized queries.
  • Không nối chuỗi SQL từ input thô.
  • Validate input bằng schema/allowlist.
  • Giới hạn quyền database account theo least privilege.
  • Không trả lỗi database chi tiết ra client.

Liên kết