PHP real_escape_string
PHP real_escape_string
Hàm real_escape_string trong PHP được sử dụng để bảo vệ ứng dụng khỏi các cuộc tấn công SQL Injection bằng cách loại bỏ các ký tự đặc biệt khỏi một chuỗi, nhằm đảm bảo rằng nó có thể được sử dụng an toàn trong một câu lệnh SQL.
Cách hoạt động
Hàm này sẽ biến đổi chuỗi đầu vào thành một chuỗi mà SQL có thể hiểu mà không gây ra lỗi hay lạm dụng. Nó thêm ký tự thoát (backslash) vào các ký tự như dấu nháy đơn, dấu nháy kép, và các ký tự đặc biệt khác.
Cú pháp
string mysqli_real_escape_string ( mysqli $link , string $escapestr )
Tham số
- $link: Kết nối đến cơ sở dữ liệu MySQLi.
- $escapestr: Chuỗi mà bạn muốn thoát.
Ví dụ sử dụng
$mysqli = new mysqli("localhost", "username", "password", "database"); $user_input = "O'Reilly"; $safe_input = $mysqli->real_escape_string($user_input); $sql = "SELECT * FROM users WHERE name = '$safe_input'";
Trong ví dụ trên, chuỗi của tên người dùng "O'Reilly" sẽ được biến thành "O\'Reilly" trước khi được sử dụng trong câu lệnh SQL.
Lưu ý
Khi sử dụng real_escape_string, hãy chắc chắn rằng bạn đang kết nối tới một cơ sở dữ liệu để hàm hoạt động đúng. Đối với PHP, khuyến khích sử dụng PDO hoặc MySQLi với Prepared Statements để bảo mật tốt hơn, vì chúng tự động xử lý việc thoát ký tự.
Việc sử dụng real_escape_string là cần thiết nhưng không đủ để đảm bảo bảo mật cho ứng dụng của bạn; nó nên được kết hợp với các biện pháp bảo mật khác.