我正在尝试构建和开发安全 POC,此代码是我提取到较小应用程序中的应用程序的一部分,因为我遇到了一些困难。
String str = "<?xml version=\"1.0\"?><!DOCTYPE foo[<!ELEMENT foo ANY> <!ENTITY word \"A\">]><foo>&word;</foo>";
System.Xml.XmlDocument xDoc = new System.Xml.XmlDocument();
xDoc.LoadXml(str);
xDoc.Save(@"C:\Temp\xdoc.xml");
考虑 xml 字符串包含一个 DTD 实体词,它在我的实际 xml 中被引用。加载文档后,我希望 DTD 得到处理,因此将我的 xml 中引用的实体“word”替换为字符串“A”。然后将整个文档写回磁盘。但是,当我检查 xDoc.xml 时。实体扩展/替换没有发生。
为什么不?