XMLStreamReader / InputStream xxe 漏洞显示在 Checkmarx 报告中



这些代码行导致 xxe 漏洞出现在 Checkmarx 报告中:

InputStream is = connection.getInputStream();
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader reader = factory.createXMLStreamReader(is);

该问题指出:

"应用程序使用 createXMLStreamReader 向远程服务器发送请求以获取某些资源。但是,攻击者可以通过在getInputStream中发送URL或其他数据来控制请求的目标。

任何想法如何解决这个问题?

在这里找到了对我有用的答案;将这些属性添加到 XMLInputFactory:

XMLInputFactory xif = XMLInputFactory.newFactory();
//prevents using external resources when parsing xml
xif.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
//prevents using external document type definition when parsing xml
xif.setProperty(XMLInputFactory.SUPPORT_DTD, false);

最新更新