Tôi có một trang web rao vặt đơn giản ...Tôi có nên sử dụng PDO để khử trùng các truy vấn Sql của mình hoặc là "mysql_real_escape_string" đủ không?
Phân loại được chèn vào bảng MySql và điều duy nhất tôi sử dụng để khử trùng đầu vào của người dùng là mysql_real_escape_string
.
Điều này có đủ không?
Các PDO là cách tốt nhất, dĩ nhiên, nhưng những gì thực sự là sự khác biệt giữa việc sử dụng chỉ mysql_real_escape_string
và PDO, trong phép nói truy vấn này:
SELECT * FROM table_name WHERE table_name.classified = '$classified';
HOẶC
INSERT INTO table_name (input1, input2) VALUES ('$input1', $input2);
Cảm ơn
Thoát quá dễ bị lãng quên. Các truy vấn tham số là phương pháp * an toàn vốn có *. (Nhưng btw, ví dụ của bạn dường như không sử dụng cách tiếp cận). Một ưu điểm khác của PDO là tăng tốc độ tiềm năng. Đó là lý thuyết hiện nay, bởi vì trình điều khiển PDO MySQL vẫn còn để thoát khỏi thay vì các tham số bị ràng buộc. – mario
Trừ khi bạn thực sự cần trừu tượng cơ sở dữ liệu, bạn được khuyến khích sử dụng cả PDO lẫn MySql, thay vào đó là MySqli. Nó có hỗ trợ cho cả hai: [binding] (http://de2.php.net/manual/en/mysqli-stmt.bind-param.php) và [escaping] (http://de2.php.net/manual /en/mysqli.real-escape-string.php) – Gordon