Đây là tham chiếu đến this (excellent) answer. Ông tuyên bố rằng giải pháp tốt nhất để thoát khỏi đầu vào trong PHP là gọi mb_convert_encoding theo sau là html_entities.Tại sao gọi mb_convert_encoding để vệ sinh văn bản?
Nhưng tại sao chính xác bạn sẽ gọi mb_convert_encoding với cùng và từ các tham số (UTF8)?
Trích từ câu trả lời ban đầu:
Thậm chí nếu bạn sử dụng htmlspecialchars ($ string) bên ngoài của các thẻ HTML, bạn vẫn dễ bị tổn thương đa byte vectơ tấn công charset.
Cách hiệu quả nhất bạn có thể là sử dụng kết hợp mb_convert_encoding và htmlentities như sau.
$str = mb_convert_encoding($str, 'UTF-8', 'UTF-8'); $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
Điều này có một số loại lợi ích tôi đang thiếu?