¿Cómo desinfectar el código HTML en Java para evitar ataques XSS?

Estoy buscando clase / utilidad, etc. para desinfectar el código HTML, es decir, eliminar etiquetas, atributos y valores peligrosos para evitar XSS y ataques similares.

Recibo código html del editor de texto enriquecido (por ejemplo, TinyMCE) pero se puede enviar de manera maliciosa, omitiendo la validación de TinyMCE ("Formulario enviado desde fuera del sitio").

¿Hay algo tan simple de usar como InputFilter en PHP? La solución perfecta que puedo imaginar funciona así (suponga que el desinfectante está encapsulado en la clase HtmlSanitizer):

String unsanitized = "...<...>...";           // some potentially 
                                              // dangerous html here on input

HtmlSanitizer sat = new HtmlSanitizer();      // sanitizer util class created

String sanitized = sat.sanitize(unsanitized); // voila - sanitized is safe...

Actualizar - ¡la solución más simple, mejor! Una pequeña clase de utilidad con la menor dependencia externa posible de otras bibliotecas / frameworks, sería lo mejor para mí.

¿Qué hay sobre eso?

Respuestas a la pregunta(5)

Su respuesta a la pregunta