提问者:小点点

如何用JAXB防止XML实体注入


我指的是用JAXB防止XXE攻击这个链接,

但仍然kiwan工具向我展示了xif. createXMLStreamReader(soapHeader.getSource())行中非常高的漏洞,所以如果有人知道,请帮助我。

我的代码如下所示:

SoapHeader soapHeader = ((SoapMessage) message).getSoapHeader();

 XMLInputFactory xif = XMLInputFactory.newFactory();
 xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES,false);
 xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);

XMLStreamReader soapHeaderXsr = xif.createXMLStreamReader(soapHeader.getSource());
unmarshaller.unmarshal(soapHeaderXsr);

谢谢。


共1个答案

匿名用户

我通过添加额外的XMLInputFactory属性解决了这个问题,这些属性是:-

xif. setProperty(XMLInputFactory.SUPPORT_DTD,false);

防止XXE最安全的方法始终是完全禁用DTD(外部实体)。

将DTD属性设置为false以获取更多信息,请参阅此链接。

现在解决我的代码漏洞

谢谢你们