В наше время, чтобы полностью и полностью защитить себя от XSS, вам понадобится белый, а не черный список, который предоставляет HTML Purifier. Мало того, что если поместить в неправильный контекст, даже htmlspecialchars($var,ENT_QUOTES);
вам не поможет, так как есть много способов избежать использования html-тегов и кавычек (stringFromChar, используя обратную косую черту), вы также должны рассмотреть различные кодировки браузера, которые могут например эта атака в UTF-7 \\\+ADw-script+AD4-alert(/xss/)+ADw-/script+AD4---//--
должна быть выполнена. Хотя HTMLPurifier имеет большие накладные расходы, это простой нетехнический способ предотвращения XSS-атак (хотя были и, я полагаю, были и дыры в их фильтрах).