首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >希望将disallow-doctype-decl功能设置为true以阻止XXE攻击

希望将disallow-doctype-decl功能设置为true以阻止XXE攻击
EN

Stack Overflow用户
提问于 2018-05-18 03:34:43
回答 1查看 2.2K关注 0票数 0

我们使用spring ws作为过滤器,根据传入soap请求上的令牌、时间戳和签名来执行WS-Security。

我们希望使用相同的过滤器来防止XXE攻击,并想知道这是否可能。

我们使用'org.springframework.ws.soap.axiom.AxiomSoapMessageFactory‘作为messageFactory,它有两个设置器'setSupportingExternalEntities’和'setReplacingEntityReferences‘,缺省情况下这两个设置器为false。

现在,如果在soap请求中使用doctype对实体进行反引用,并使用&xxe;引用该实体,则spring框架将抛出错误

代码语言:javascript
复制
org.apache.axiom.soap.SOAPProcessingException: A SOAP message cannot contain entity references because it must not have a DTD
2018-05-18T13:14:33,272 DEBUG [org.springframework.ws.soap.server.SoapMessageDispatcher] Endpoint invocation resulted in exception - responding with Fault
org.apache.axiom.soap.SOAPProcessingException: A SOAP message cannot contain entity references because it must not have a DTD
    at org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createEntityReference(StAXSOAPModelBuilder.java:359) ~[axiom-api-1.2.15.jar:1.2.15]
    at org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:279) ~[axiom-api-1.2.15.jar:1.2.15]

但是,如果我们将&name;替换为& ;xxe;或者& xxe;Spring ws框架让它通过,这个错误就不会出现。

我不希望它经过任何进一步的处理,所以如果可能的话,我们可以以某种方式不允许在soap请求中使用doctype声明本身。

感谢您的帮助和指点来解决此问题

EN

回答 1

Stack Overflow用户

发布于 2018-06-09 05:50:43

加上我是如何解决它的。没有找到在spring-ws过滤器中处理它的方法,Spring也没有行为异常,因为它没有尝试解析传递的实体。

在稍后的项目流程中,我们将使用标准的java DOM解析器lib,并通过添加

factory.setFeature(DISALLOW_DOCTYPE_DECL_FEATURE,为真);

我们能够停止解决XXE问题的DTD声明。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50399299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档