Java 避免XML注入攻击的DOM解析器设置

Java 避免XML注入攻击的DOM解析器设置,java,security,Java,Security,下面是DOM解析器的哪些设置?设置这些属性有什么错误吗?它们会导致例外吗 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); dbf.setFeature("http://xml.org/sax/features/external-general-e

下面是DOM解析器的哪些设置?设置这些属性有什么错误吗?它们会导致例外吗

 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();                 
  dbf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
  dbf.setFeature("http://xml.org/sax/features/external-general-entities", false);
  dbf.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
Document doc = dbf.newDocumentBuilder().parse(new InputSource(byteArrayInputStream));   

这些设置通常是为了避免暴露于(XXE)攻击,这可能导致磁盘上的信息暴露()


就我的理解而言,设置这些应该不会引起任何问题。但是,不设置它们可能会使您容易受到攻击。

这有助于避免XML外部实体注入

我使用的是HP Fortify SCA(源代码分析器),如果您没有指定这些属性,它就能够发现此类问题


您可以在此处找到更多信息:

您找到解决方案了吗?我也在找。如果您找到了解决方案,请发布。