Это относится к этому (отличному) ответу. Он утверждает, что лучшим решением для экранирования ввода в PHP является вызов mb_convert_encoding, за которым следует html_entities.
Но почему именно вы могли бы назвать mb_convert_encoding тем же самым и с параметрами (UTF8)?
Выдержка из исходного ответа:
Даже если вы используете htmlspecialchars ($ string) за пределами HTML-тегов, вы по-прежнему уязвимы для многобайтовых символов атаки с набором символов.
Наиболее эффективным может быть использование комбинации mb_convert_encoding и htmlentities следующим образом.
$str = mb_convert_encoding($str, 'UTF-8', 'UTF-8'); $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
Есть ли у меня какая-то польза, которую мне не хватает?