Cześć,
mam taki dylemat, czy zezwolić na pełne użycie html-u użytkownikowi, który tworzy pewien szablon html a potem szablon trafia do pdf-u i jest zwracany tylko temu użytkownikowi. Szablony nie będą wyświetlane innym użytkownikom serwisu, jak i również wszelkie <script> z szablonu zostaną usunięte.
Pomijając czy to dobry pomysł czy zły, o tym już inni piszą.
Należy robić whitelisting a nie blacklisting. Czyli masz listę dozwolonych tagów, a nie listę zabronionych.
Jest bardzo dużo sposobów na zrobienie XSSa, i sam ich wszystkich nie przewidzisz, bo nie jesteś ekspertem (a ja się trochę na tym znam, i też nie wierzyłbym sobie w robieniu blacklisty - bo zawsze się znajdzie ktoś lepszy ode mnie). A nawet jeśli hipotetycznie udałoby Ci się zrobić blacklistę, zawsze może przyjść nowa wersja HTMLa i Twoja strona będzie znowu podatna na atak. Blacklista w tym przypadku to 100% pewności na XSS prędzej czy później :>.