Est - check_plain () suffisant pour réafficher le texte saisi par les utilisateurs dans le navigateur, ou devrais - je encore avec filtre filter_xss () ?
Est - check_plain () suffisant pour réafficher le texte saisi par les utilisateurs dans le navigateur, ou devrais - je encore avec filtre filter_xss () ?
J'imagine que la question concerne l'utilisation check_plain(filter_xss($string))
, ou filter_xss(check_plain($string))
.
check_plain()
et filter_xss()
ont deux objectifs différents et en revanche:
check_plain()
code des caractères spéciaux dans une chaîne de texte brut qui est ensuite affichée au format HTML.filter_xss()
filtre une chaîne HTML pour éviter les vulnérabilités de cross-site-scripting (XSS). Son objectif est notamment:
Si vous utilisez check_plain()
, la chaîne passée à la fonction est censée être utilisée comme texte brut; dans ce cas, filter_xss()
n'est pas nécessaire. Si vous utilisez filter_xss()
, la chaîne transmise à la fonction est censée être HTML et check_plain()
n'est pas nécessaire.
Si la question concerne l'utilisation check_plain()
et filter_xss()
sur différentes parties de la même chaîne, alors, comme l'a souligné greggles dans son commentaire, vous pouvez utiliser (par exemple) check_plain()
le contenu des attributs de balise et filter_xss()
la balise HTML entière.