Tôi đã thực hiện một số đọc về bảo mật các ứng dụng PHP, và dường như với tôi rằng mysqli_real_escape_string
là chức năng chính xác để sử dụng khi chèn dữ liệu vào bảng MySQL vì addslashes
có thể gây ra một số điều kỳ lạ xảy ra kẻ tấn công thông minh. Đúng?Htmlentities vs addslashes vs mysqli_real_escape_string
Tuy nhiên, có một điều khiến tôi khó hiểu. Tôi dường như nhớ rằng việc được thông báo addslashes
tốt hơn htmlentities
khi lặp lại dữ liệu do người dùng nhập lại cho người dùng để bảo vệ dữ liệu của họ, nhưng có vẻ như addslashes
là người có lỗ hổng. Điều này đúng hay tôi nhớ không chính xác?
Tốc độ cao, các câu lệnh chuẩn bị chỉ tốt hơn nếu bạn đang sử dụng truy vấn đã chuẩn bị nhiều lần trong một tập lệnh duy nhất. Nếu không, bạn đang thực hiện hai chuyến đi khứ hồi tới máy chủ, một lần để chuẩn bị và một lần để thực hiện. Nếu bạn đã sử dụng mã tự động đảm bảo xác thực đầu vào, tôi không biết tại sao các câu lệnh chuẩn bị tốt hơn. tài liệu mysql bao gồm điều này. http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html Nếu tôi sai (có thể và có thể xảy ra), hãy cho tôi biết lý do. –
Greets Mike. Tôi đã nhìn thấy đối số truy cập này quá nhiều lần và tôi nghĩ rằng nó cần phải được đặt để nghỉ ngơi. Hãy hiểu, rằng tôi không đồng ý với những gì bạn đã nói. Tuy nhiên, tôi không đồng ý với lời khuyên này trong một diễn đàn như thế này. Tôi nghĩ rằng an toàn nên là một ưu tiên cao hơn so với hiệu suất dễ bị lỗi trong trường hợp này. OP không phàn nàn về trang web của mình, mà là thiếu định nghĩa rõ ràng giữa các kỹ thuật thoát khác nhau. Bạn có đồng ý rằng ai đó bắt đầu cuộc hành trình này nên đi theo con đường an toàn hơn không? –
Tôi đồng ý hoàn toàn. Tôi đã hỏi về hiệu suất cho bản thân mình bởi vì tôi không chắc chắn về câu trả lời. Tôi không nói rõ điều đó. –