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

时间:2014-03-17 04:37:29

标签: java security

用于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));   

2 个答案:

答案 0 :(得分:3)

这些通常设置为避免暴露于XML External Entity(XXE)攻击,这可能导致信息暴露在磁盘上(OWASP details here)。

据我所知,设置这些不应该导致任何问题。但是,不设置它们可能会让您容易受到攻击。

答案 1 :(得分:0)

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

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

您可以在此处找到更多信息:https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet