5

HP fortify 在以下代码中向我展示了 XML 外部实体注入:

StringBuilder sb = new StringBuilder();
StringWriter stringWriter = new StringWriter(sb);
xmlSerializer.Serialize(stringWriter, o);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(stringWriter.ToString());  //bad code
result = xmlDoc.ChildNodes[1].OuterXml;

在上面它显示了以下行中的漏洞xmlDoc.LoadXml(stringWriter.ToString());

我该如何解决这种情况?

4

2 回答 2

3

使用 xmlDoc.XmlResolver = null; 在加载 xml 之前。

于 2017-02-10T22:35:22.520 回答
0

XmlDocument 对象中有一个 XmlResolver 对象,在 4.5.2 之前的版本中需要将其设置为 null。在 4.5.2 及更高版本中,此 XmlResolver 默认设置为 null。

于 2019-08-08T12:50:52.197 回答