java - 如何在使用 com.sun.org.apache.xerces.internal.parsers.SAXParser 的 SAXBuilder 中禁用 XML 外部实体 (XEE) 处理

标签 java xml xml-parsing sax owasp

这是我的片段:

public static SAXBuilder createBuilder(@NotNull final String schemaPath)  {


     final SAXBuilder builder = new SAXBuilder("com.sun.org.apache.xerces.internal.parsers.SAXParser", true);
    builder.setFeature("http://apache.org/xml/features/validation/schema", true);
    builder.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);


    builder.setFeature("http://apache.org/xml/features/disallow-doctype-decl",true);
    builder.setFeature("http://xml.org/sax/features/external-general-entities", false);
    builder.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
    builder.setExpandEntities(false);
    builder.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", schemaPath);
    builder.setEntityResolver(getEntityResolver());
    return builder;
}

我花了一些时间寻找,但没有留下太多

最佳答案

我确定了此问题的根本原因。这是因为我的 xsd 中的 processContents="lax" 属性

关于java - 如何在使用 com.sun.org.apache.xerces.internal.parsers.SAXParser 的 SAXBuilder 中禁用 XML 外部实体 (XEE) 处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45325241/

相关文章:

c# - ScrollViewer 和 LonglistSelector Scrollbar 冲突

xml - 使用 BaseX 读取多个 XML 文件

android - dom解析时如何区分父子标签?

java - 解析并比较 XML 标签文本以获得同级

jquery - 从 XML 文档获取标题值

java - 表单提交thymeleaf和Spring boot后如何保持在同一页面?

java - 我可以在 Java 中使用验证性较低的 StAX 解析器吗?

Java:将 HashMap 值转换为 Set<Integer>

java - 使用 printwriter 与 System.out.print 打印整数

xml - 在 XML 中使用 Xml 解析器和 Xpath 有什么区别