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