【发布时间】:2013-09-27 18:27:13
【问题描述】:
我正在尝试构建和开发安全 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 时。实体扩展/替换没有发生。
为什么不呢?
【问题讨论】:
-
您的标题显示为 XDocument,但您在代码中使用了 XmlDocument。您要问的是 XmlDocument 吗?
-
@Alireza - 不完全一样,那里的答案也不是特别有用。我想在这里明确知道这段代码有什么问题。
-
@Vcsjones - 是的,我要问的是 XmlDocument。