XML 文档可选地包含文档类型定义 (DTD),除其他功能外,它还支持定义 XML 实体。可以通过以 URI 的形式提供替换字符串来定义实体。XML 解析器可以访问此 URI 的内容并将这些内容嵌入回 XML 文档中以供进一步处理。攻击者可以强制应用程序向攻击者无法直接访问的服务器发出传出请求,这可用于绕过防火墙限制或隐藏端口扫描等攻击源。
按照我显示错误的 Veracode 插件的代码片段,请帮助我如何绕过此检查。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setValidating(true);
dbf.setNamespaceAware(true);
try {
FEATURE = "http://apache.org/xml/features/nonvalidating/load-external-dtd";
dbf.setFeature(FEATURE, true);
DocumentBuilder db = dbf.newDocumentBuilder();
inputStream = new BufferedInputStream(new
FileInputStream(sourceFile.getSourceFile()));
Document doc = db.parse(inputStream);```