XML xsd 上传中的外部实体注入

XML External Entity injection in xsd upload

我正在我的基于 j2ee 的 Web 应用程序中上传一个 xsd,它正在生成 java 类,稍后用于处理。上传 xsd 已被识别为可用于 XML 外部实体注入。我搜索了很多地方并了解如何修复 xml 。但是 XSD 还不清楚 如果有人对此有任何想法,请告诉我。

提前致谢

这里 XSD 没有什么特别之处。就此攻击向量而言,XSD 文档与任何其他 XML 文档一样。

SchemaCompiler schemaCompiler = XJC.createSchemaCompiler();
schemaCompiler.setDefaultPackageName(packageName);
XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance();
xmlInputFactory.setProperty(XMLInputFactory.SUPPORT_DTD, false); 
xmlInputFactory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); 
XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(new FileInputStream(xsdFile));
try {
    schemaCompiler.parseSchema(xsdFile.toURI().toString(),xmlStreamReader);
} catch (XMLStreamException e) {
    // handle exception
}