java - 用于 HTML 清理的库

标签 java html parsing

我正在寻找一种 html 清理器,我可以根据 API 调用它来清理从我的 web 应用程序中获取的字符串。是否有一些有用且易于使用的库可用?有人知道一两个吗?

我不需要太大的东西,它只需要能够找到未关闭的标签并关闭它们即可。

最佳答案

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

A fast and easy to configure HTML Sanitizer written in Java which lets you include HTML authored by third-parties in your web application while protecting against XSS.

您可以使用 prepackaged policies

Sanitizers.FORMATTING.and(Sanitizers.LINKS)

tests展示如何轻松配置自己的:

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

关于java - 用于 HTML 清理的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1947021/

相关文章:

java - Android 设备到设备推送通知

java - 将 Solr 安装到托管 tomcat 服务器上

java - Gradle Task替换.java文件中的字符串不起作用

php - Paypal 订阅按钮

html - BEM 命名约定 : am I on the right path?

javascript - 从 json 响应中解析动态 json 对象

java - 如何使用 Guice + Jersey + servlet 将 Swagger 集成到 Java 项目中并自动生成 REST API 文档

java - ANTLR 可以生成最终的解析器类吗?

javascript - 检查脚本是否已加载(并且对象存在于窗口空间中)的最佳实践?

javascript - 如何为图像创建三 Angular 形容器(x 浏览器)