有没有办法保护Spring-WS应用程序免受XML炸弹攻击,如果我使用JAXB2 un / marshaler ...以及Xalan 2.7.1和Xerces,虽然我不再知道谁又依赖于什么:) ..
基本上我想在整个应用程序中禁用DTD作为模式语言,如果可以从app context xml文件中完成,那就太棒了!
我想另一种选择是扩展/实现一些类/接口,并改变一些方法,但我不知道Spring-WS首先调用解析器的位置....
答案 0 :(得分:3)
Java解析器通常内置受实体扩展攻击保护的内容:
SAXParserFactory spf = SAXParserFactory.newInstance();
spf.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
XMLReader xmlReader = spf.newSAXParser().getXMLReader();
InputSource inputSource = new InputSource(new FileReader("input.xml"));
SAXSource source = new SAXSource(xmlReader, inputSource);
了解更多信息