防止 jboss 4.2 上的 XXE 攻击

Prevent XXE attack on jboss 4.2

是否有可能以某种方式防止对 jboss 4.2 上部署的 Web 服务的 xxe 攻击? WS 由注解定义。我找不到任何配置来禁用支持外部实体和 dtd。

在这个 post (Prevent XXE Attack with JAXB) 中是一个在 servlet 中解析 soap 的解决方案,但我需要一些用于注释 WS 的东西。

经过长时间调试 jboss 的代码,我找到了针对 jboss 4.2.2

的 XXE 攻击的修复程序

在 DOMUtils.class(位于 jbossws-common.jar)中,我在 DocumentBuilderFactory 实例上添加了额外的功能:

factory.setFeature("http://xml.org/sax/features/external-general-entities", false);
factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);

它解决了问题。