Các cuộc tấn công đưa vào SQL xảy ra khi đầu vào của người dùng được mã hóa không đúng cách. Thông thường, đầu vào của người dùng là một số dữ liệu mà người dùng gửi cùng với truy vấn của cô ấy, tức là các giá trị trong $_GET
, $_POST
, $_COOKIE
, $_REQUEST
hoặc $_SERVER
mảng. Tuy nhiên, đầu vào của người dùng cũng có thể đến từ nhiều nguồn khác, như ổ cắm, trang web từ xa, tệp, v.v. Do đó, bạn thực sự nên xử lý mọi thứ trừ hằng số (như 'foobar'
) là đầu vào của người dùng .
Trong mã bạn đã đăng, mysql_real_escape_string
được sử dụng để mã hóa (=thoát) đầu vào của người dùng. Do đó, mã là chính xác, tức là không cho phép bất kỳ cuộc tấn công chèn SQL nào.
Lưu ý rằng rất dễ quên cuộc gọi đến mysql_real_escape_string
- và một lần là đủ cho một kẻ tấn công thành thạo! Do đó, bạn có thể muốn sử dụng PDO
hiện đại với báo cáo đã chuẩn bị sẵn
thay vì adodb.