Thông thường khi mới học viết mã chúng ta chưa quan tâm đến bảo mật nên xuất hiện nhiều lỗi bỏ mật. Đặc biệt là lỗi với Injection:
VD: ta viết câu truy vấn đăng nhập sau:
$sql = "select * from users where username = '$username' and password = '$password' ";
$ username' và $password' là các biến lưu dữ liệu tên đăng nhập và mật khẩu mà người dùng nhập.
Nhưng nếu người dùng nhập username = ‘ or 1=1 –
Thì câu truy vấn mà bạn xây dựng thành:
$sql = "select * from users where username = '’ or 1=1
Các phần phía sau là ghi chú (sau dấu --) nên đã bỏ đi
CÂU TRUY VẤN MÀ BẠN TẠO ĐÃ BỊ THAY ĐỔI KHÔNG ĐÚNG NHƯ MONG MUỐN (SQL INJECTION)
Để không bị những lỗi như vậy chúng ta cần bỏ đi các kí tự đặc biệt bằng các hàm sau:
Làm sạch thông tin, xóa bỏ các tag html
$username = strip_tags($username);
$password = strip_tags($password)
Bỏ đi các kí tự gây lỗi injection
$username = addslashes($username);
$password = addslashes($password);