我正在运行下面的代码片段以启用安全处理功能,并在使用tomcat服务器的rest API中正常工作。但是,这个相同的代码片段无法在JBoss服务器上使用。

请提出任何解决方法/修复方法,因为我必须修复XXE injection

String strXmlRequest ="<?xml version="1.0"?><!DOCTYPE test[ <!ENTITY demo SYSTEM "D:\\test.text">]>"
SAXParserFactory saxFactory = SAXParserFactory.newInstance();
saxFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);

SAXParser saxParser = saxFactory.newSAXParser();
saxParser.parse(new InputSource(new StringReader(strXmlRequest)), handler );

最佳答案

你试过了吗 :

  saxFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
  saxFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);


OWASP XXE Prevention sheet所解释

10-08 17:13