Como higienizar o código HTML em Java para evitar ataques XSS?
Estou procurando classe / util etc. para limpar o código HTML, ou seja, remover tags, atributos e valores perigosos para evitar XSS e ataques semelhantes.
Eu recebo o código html do editor de texto rico (por exemplo, TinyMCE), mas ele pode ser enviado maliciosamente, omitindo a validação do TinyMCE ("Dados enviados fora do local").
Existe algo tão simples de usar quanto o InputFilter no PHP? Solução perfeita que posso imaginar funciona assim (suponha que o desinfetante esteja encapsulado na classe 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...
Atualizar - a solução mais simples, melhor! Pequena classe util com o mínimo possível de dependências externas em outras bibliotecas / estruturas - seria melhor para mim.
Que tal isso?