Alcune delle vecchie funzioni di stringa PHP, ad esempio explode()
, funzionano con le stringhe UTF-8, ma non funzionano correttamente su stringhe UTF-8 malformate. È un problema di sicurezza? È possibile evitare la convalida delle stringhe con stringhe UTF-8 malformate in qualche modo?
È difficile fare un elenco di queste funzioni. Penso che ogni funzione della stringa PHP di base sia influenzata in qualche modo. Ad esempio lo strpos non dà la giusta posizione in una stringa, strlen, non dà la giusta lunghezza. Quindi suppongo che htmlentities, htmlspecialchars, ecc ... siano anch'essi influenzati, ma è più complicato, perché alcuni di essi hanno un flag UTF-8, alcuni di loro non sono compatibili con UTF-8, come gli strpos, alcuni di loro lo fanno non funziona con UTF-8 malformato, ecc ... Posso fare una ricerca dopo aver avuto un esempio funzionante, quindi è quello che sto cercando.
Per me è abbastanza, ad esempio qualcosa del tipo:
- invia 2 string malformati al server, che in teoria non posso controllare con queste funzioni
- concatale con implode e ottieni qualcosa di dannoso, ad esempio XSS.
È possibile? Non capisco completamente come UTF-8 o come UTF-8 non valido funzioni ...