Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用JAXB防止XML实体注入_Java_Security_Jaxb_Ws Security_Xxe - Fatal编程技术网

Java 如何使用JAXB防止XML实体注入

Java 如何使用JAXB防止XML实体注入,java,security,jaxb,ws-security,xxe,Java,Security,Jaxb,Ws Security,Xxe,我指的是这个链接, 但是在xif.createXMLStreamReader(soapHeader.getSource())行中,kiwan工具仍然显示了我非常高的漏洞,所以如果有人知道,请帮助我 我的代码如下所示: SoapHeader soapHeader = ((SoapMessage) message).getSoapHeader(); XMLInputFactory xif = XMLInputFactory.newFactory(); xif.setProperty(XMLIn

我指的是这个链接,

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

我的代码如下所示:

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);

谢谢。

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

xif.setProperty(XMLInputFactory.SUPPORT\u DTD,false)

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

将DTD属性设置为false以了解更多信息,请参阅此

现在解决我的代码漏洞


谢谢你

你做了正确的事情。我怀疑你的SAST工具有误报。