ça veut dire que ma fonction actuelle a une faille ?
Ça n'a pas de sens de demander si cette fonction a une faille si tu ne précises pas à quoi elle sert, et surtout en l'occurrence, ce que tu fais du résultat. Si c'est pour mettre en base de données, il faut my_real_escape_string. Sinon, pour les xss, c'est effectivement htmlentities et/ou htmlspecialchars (je laisse les spécialistes du php débattre du meilleur), mais il manque au moins le charset pour que ce soit efficace.
Et même comme ça, rien ne garantis que la faille (si faille réelle il y a) utilisée pour ton deface n'est pas n'importe où ailleurs que dans cette fonction particulière.