我正在尝试防止应用程序处理的XML中出现恶意的XXE注入。因此,我使用XDocument而不是XmlDocument。
XML表示web请求的有效负载,因此我在其字符串内容上调用XDocument.Parse。但是,我看到XML (& xxe )中包含的XXE引用在结果中被替换为实体xxe的实际值。
有没有可能在不替换&xxe的情况下用XDocument解析XML?
谢谢
编辑:我设法避免了使用XDocument.Load的XmlResolver=null替换XML中的to。
发布于 2015-10-21 17:44:50
尝试使用带有预配置读卡器的Load,而不是Parse:
var xdoc = XDocument.Load(new XmlTextReader(
new StringReader(xmlContent)) { EntityHandling = EntityHandling.ExpandCharEntities });来自MSDN:
当EntityHandling设置为ExpandCharEntities时,读取器扩展字符实体并将常规实体作为EntityReference节点返回。
发布于 2018-06-08 16:46:53
使用以下示例停止解析XXE (模式和DTD)。
Dim objXmlReader As System.Xml.XmlTextReader = Nothing
objXmlReader = New System.Xml.XmlTextReader(_patternFilePath)
objXmlReader.XmlResolver = Nothing
patternDocument = XDocument.Load(objXmlReader)https://stackoverflow.com/questions/33255286
复制相似问题