我正在运行下面的代码片段以启用安全处理功能,并在使用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所解释