Vraiment, vous devez autoriser uniquement les données non fiables dans une liste blanche de bonne attributs comme: aligner, alink, alt, bgcolor, de bordure, de cellpadding, cellspacing, de classe, de couleur, de cols, colspan, coords, dir, du visage, de la hauteur, hspace, ismap, lang, marginheight, marginwidth, multiples, nohref, noresize, noshade, nowrap, ref, rel, rev, lignes, rowspan, défilement, forme, durée, résumé, tabindex, titre, usemap, valign, la valeur, vlink, vspace, largeur
Vous voulez vraiment conserver les données non fiables et de gestionnaire javascript ainsi que l'id ou le nom des attributs (ils peuvent tabasser d'autres éléments dans le DOM).
Aussi, si vous mettez des données douteuses dans un CRS ou un attribut "HREF", alors c'est vraiment un non fiables URL de sorte que vous devez valider l'URL, assurez-vous que ce n'est PAS un javascript: URL, puis en entité HTML codent.
Plus de détails sur l'ensemble de il ici: https://www.owasp.org/index.php/Abridged_XSS_Prevention_Cheat_Sheet