Hầu hết các lỗi SQL Injection đều là do câu lệnh SQL sai hoặc do User làm cho câu lệnh SQL sai , không thực hiện đúng chức năng của nó í dụ như chúng ta có một Script kiểm tra đăng nhập như sau : 0) { //Đăng nhập thành công } else { //Đăng nhập không đúng Username hay Password } //. ? - Đoạn Script trên là một đoạn Script rất đơn giản thực hiện Login thông qua câu SQL kiểm tra username và password . Câu lệnh SQL nguyên thủy là : SELECT * FROM users. | Anti PHP-SQL Injection Hầu hết các lỗi SQL Injection đều là do câu lệnh SQL sai hoặc do User làm cho câu lệnh SQL sai không thực hiện đúng chức năng của nó í dụ như chúng ta có một Script kiểm tra đăng nhập như sau Các lệnh Connect vào SQL Database .. Susername _POST username Lấy User và Pass từ Form password _POST password result mysql_query SELECT FROM users WHERE user username AND password password if mysql_num_rows result 0 Đăng nhập thành công else Đăng nhập không đúng Username hay Password . - Đoạn Script trên là một đoạn Script rất đơn giản thực hiện Login thông qua câu SQL kiểm tra username và password . Câu lệnh SQL nguyên thủy là SELECT FROM users WHERE user username AND password password - Tuy nhiên đây lại là một SQL Injection vô cùng lớn nếu như User nhập biến User là OR 1 OR user - Khi đó lệnh SQL sẽ trở thành SELECT FROM users WHERE user OR 1 OR user AND password password - Kết quả trả về sẽ là toàn bộ user trong Database và dĩ nhiên đây là một trường hợp Login không hợp lệ biến password cũng có thể sữ dụng để tạo SQL Injection . Thực ra lỗi trên là do biến Susername có thể fix bằng cách kiểm tra biến user rồi sau đó mới kiểm tra biến pass hoặc một cách nhanh hơn fix được hầu hết tất cả các lỗi SQL Injection mà chỉ cần sữ dụng một hàm có sẵn của PHP đó là hàm addslashes . - Xin nói một chút về hàm addslashes hàm này sẽ trả về một chuỗi với dấu trước các ký tự cần trích dẫn trong Database các ký tự đó là và NUL 0 . - Cấu trúc hàm addslashes string addslashes string str - Nhờ có hàm addslashes mà câu lệnh SQL của ta sẽ trở thành SELECT FROM users WHERE user OR 1 OR user AND password password - Như vậy thì câu lệnh SQL sẽ hoạt động đúng như chức năng của nó . Một số lỗi SQL Injection khác cũng có thể khắc phục bằng phương pháp này. Tôi cũng xin nhắc lại là phương pháp này chỉ fix được hầu hết tất cả các lỗi SQL Injection tức là các lỗi do biến PHP gây ra còn các lỗi do bản thân câu lệnh SQL thì cách này không có hiệu quả gì. Tuy nhiên nếu dùng phương