如何修复Java中的“禁用XML外部实体(XXE)处理”漏洞
我针对sonarqube运行了我的Java代码,并且我得到了“禁用XML外部实体(XXE)处理”作为漏洞。我花了一些时间在谷歌上来解决这个问题。我一直在尝试很多方法,但没有任何东西对我有用。我不知道我错过了什么
我的代码:
final DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
docFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
docFactory.setFeature(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
docFactory.setFeature(XMLInputFactory.SUPPORT_DTD, false);
docFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
docFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
docFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
docFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
final DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
final Document doc = docBuilder.parse(filepath);
我正在使用java 1.8,任何帮助都是值得赞赏的。谢谢