java - Spring-ws XML 炸弹保护,有人知道吗?

标签 java xml web-services spring-ws

如果我使用 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/

相关文章:

java - Apache Kafka 的 Spring : Unrecognized producer configuration - 'delivery.timeout.ms'

java - 如何从 fragment 开始向 Activity 添加 fragment ?

android - Retrofit 返回 LinkedTreeMap 而不是 JSON

c# - 如何在 C# 中从选定的 XML 节点获取所有属性名称

c# - 在 C# 中从 context.httprequest 读取原始数据

android - 将 G-WAN 用于 Web 服务

c# - 从服务方法调用中检索返回的复杂对象时出现问题

java - 强制从 AlertDialog 中显示软键盘

java - 图像尺寸通知android

c# - 使用 LINQ 查询 XML 并在不存在的情况下使用 null 代替特定的 xml 属性