如果我使用 JAXB2 un/marshaler...和 Xalan 2.7.1 和 Xerces,有没有办法保护 Spring-WS 应用程序免受 XML 炸弹的攻击,尽管我不再知道谁依赖于什么了:) .. ..
基本上我想在整个应用程序中禁用 DTD 作为模式语言,如果这可以从应用程序上下文 xml 文件中完成,那就太好了!
我想另一个选择是扩展/实现一些类/接口(interface),并更改一些方法,但我不知道在 Spring-WS 中哪里首先调用了解析器....
最佳答案
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);
了解更多信息
关于java - Spring-ws XML 炸弹保护,有人知道吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7180918/