Questo è in riferimento a this (excellent) answer. Dichiara che la migliore soluzione per l'input di escape in PHP è chiamare mb_convert_encoding seguito da html_entities.Perché chiamare mb_convert_encoding per disinfettare il testo?
Ma perché si chiamerebbe esattamente mb_convert_encoding con lo stesso parametro da e verso i parametri (UTF8)?
Estratto dalla risposta originale:
Anche se si utilizza htmlspecialchars ($ stringa) al di fuori dei tag HTML, si sono ancora vulnerabili a multi-byte vettori di attacco charset.
La cosa più efficace che si può avere è usare la combinazione di mb_convert_encoding e htmlentities come segue.
$str = mb_convert_encoding($str, 'UTF-8', 'UTF-8'); $str = htmlentities($str, ENT_QUOTES, 'UTF-8');
cosa questo ha un qualche tipo di beneficio che mi manca?