用于 HTML 清理的 Libs

2022-09-03 09:15:03

我正在寻找一个html消毒器,我可以根据API调用它来清理我从webapp获得的字符串。有没有一些有用的易于使用的库可用?有谁知道一两个?

我不需要一些大的东西,它必须能够找到未关闭的标签并关闭它们。


答案 1

https://github.com/OWASP/java-html-sanitizer 现在已标记为可投入生产使用。

一个快速且易于配置的HTML Sanitizer,用Java编写,允许您在Web应用程序中包含由第三方创作的HTML,同时防止XSS。

您可以使用预打包的策略

Sanitizers.FORMATTING.and(Sanitizers.LINKS)

或者测试显示如何轻松配置自己的测试:

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

或者编写自定义策略来执行某些操作,例如使用某个类将 s 更改为 s:h1div

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"))

答案 2

JTidy可能会帮助你。