Esto se refiere a this (excellent) answer. Afirma que la mejor solución para escaparse de entrada en PHP es llamar al mb_convert_encoding seguido de html_entities.¿Por qué llamar a mb_convert_encoding para desinfectar el texto?
Pero, ¿por qué llamaría exactamente a mb_convert_encoding con los mismos parámetros desde y hacia (UTF8)?
Extracto de la respuesta original:
Incluso si utiliza htmlspecialchars ($ cadena) fuera de las etiquetas HTML, que siguen siendo vulnerables a múltiples bytes de ataque conjunto de caracteres.
Lo más eficaz que puede ser es utilizar una combinación de mb_convert_encoding y htmlentities de la siguiente manera.
$str = mb_convert_encoding($str, 'UTF-8', 'UTF-8'); $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
¿Tiene esto algún tipo de beneficio que me falta?