Naprawdę powinieneś dopuszczać tylko niezaufane dane do białej listy dobrych atrybutów, takich jak: wyrównaj, alink, alt, bgcolor, border, pad do komórek, odstępy między komórkami, klasa, kolor, cols, colspan, coords, dir, face, height, hspace, ismap, lang , marginheight, marginwidth, multiple, nohref, noresize, noshade, nowrap, ref, rel, rev, wiersze, rozpiętość wierszy, przewijanie, kształt, zakres, podsumowanie, tabindex, tytuł, usemap, valign, wartość, vlink, vspace, szerokość
Naprawdę chcesz ukryć niezaufane dane w procedurach obsługi javascript, a także w atrybutach id lub name (mogą blokować inne elementy w DOM).
Ponadto, jeśli umieszczasz niezaufane dane w atrybucie SRC lub HREF, to jest to naprawdę niezaufany adres URL, więc powinieneś sprawdzić poprawność adresu URL, upewnić się, że NIE jest to JavaScript: URL, a następnie kodowanie encji HTML.
Więcej szczegółów na temat wszystkich dostępnych tutaj: https://www.owasp.org/index.php/Abridged_XSS_Prevention_Cheat_Sheet