Wie kann HTML-Code bereinigt werden, um XSS-Angriffe in Java oder JSP zu verhindern?

Ich schreibe eine servletbasierte Anwendung, in der ich ein Nachrichtensystem bereitstellen muss. Ich bin in Eile, also wähle ich CKEditor, um Bearbeitungsfunktionen bereitzustellen, und ich füge derzeit den generierten HTML-Code direkt in die Webseite ein, auf der alle Nachrichten angezeigt werden (Nachrichten werden in einer MySQL-Datenbank gespeichert, zu Ihrer Information). CKEditor filtert HTML bereits auf der Grundlage einer Whitelist, ein Benutzer kann jedoch trotzdem schädlichen Code mit einer POST-Anforderung einschleusen, sodass dies nicht ausreicht.

Es gibt bereits eine gute Bibliothek, um XSS-Angriffe durch Filtern von HTML-Tags zu verhindern. Sie ist jedoch in PHP geschrieben:HTML Purifier

So,ibt es eine ähnliche ausgereifte Bibliothek, die in Java verwendet werden kan? Ein einfacher Stringwechsel auf Basis einer Whitelist scheint nicht zu genügen, da Ich möchte auch fehlerhafte Tags filtern (Dies kann das Design der Seite ändern, auf der die Nachricht angezeigt wird.)

Wenn nicht, wie soll ich dann vorgehen? Ein XML-Parser scheint übertrieben.

Hinweis: Es gibt viele Fragen zu SO, aber alle Antworten beziehen sich auf das Filtern von ALLEN HTML-Tags: Ich möchte gültige Formatierungs-Tags behalten.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage