Libs для очистки HTML - PullRequest
       9

Libs для очистки HTML

14 голосов
/ 22 декабря 2009

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

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

Ответы [ 5 ]

24 голосов
/ 17 января 2012

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 s на div s с определенным классом:

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"))
10 голосов
/ 22 декабря 2009

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

2 голосов
/ 19 декабря 2013

Анализатор HTML JSoup также поддерживает очистку политикой: http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer

2 голосов
/ 22 декабря 2009

Помимо JTidy вы также можете взглянуть на:
Nekohtml
TagSoup
Получение текста в документе HTmL

1 голос
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...