Libs для дезинфекции HTML

Я ищу html sanitizer, который я могу вызвать для каждого API для дезинфекции строк, которые я получаю от своего webapp. Есть ли полезные полезные в использовании libs? Кто-нибудь знает, может быть, один или два?

Мне не нужно что-то большое, оно просто должно быть в состоянии найти закрытые теги и закрыть их.

Ответы

Ответ 1

JTidy может вам помочь.

Ответ 2

https://github.com/OWASP/java-html-sanitizer теперь отмечен как готовый к использованию.

Быстрая и простая настройка HTML Sanitizer, написанная на Java, которая позволяет включать HTML, созданный третьими лицами в вашем веб-приложении, при этом защищая от XSS.

Вы можете использовать готовые политики

Sanitizers.FORMATTING.and(Sanitizers.LINKS)

или тесты показывают, как вы можете легко настроить свои собственные:

new HtmlPolicyBuilder()
    .allowElements("a")
    .allowUrlProtocols("https")
    .allowAttributes("href").onElements("a")
    .requireRelNofollowOnLinks()

или напишите собственные политики, чтобы сделать такие вещи, как изменение h1 на div с определенным классом:

new HtmlPolicyBuilder()
    .allowElements("h1", "p")
    .allowElements(
        new ElementPolicy() {
          public String apply(String elementName, List<String> attrs) {
            attrs.add("class");
            attrs.add("header-" + elementName);
            return "div";
          }
        }, "h1"))