首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XElement.Parse && XDocument.Parse易受c#中XML注入的影响

XElement.Parse && XDocument.Parse易受c#中XML注入的影响
EN

Stack Overflow用户
提问于 2021-04-12 16:25:11
回答 1查看 894关注 0票数 0

下面的代码通过fortify被检测为XML注入。请有人帮我解决这个问题。

代码语言:javascript
运行
复制
LockUserXml(string xml)
{
   var doc = XDocument.Parse(xml);
   ..
   ..
}

LocalUserXml(XmlElement root, ExportXmlParameter param)
{
   XElement rootElement = XElement.Parse(root.OuterXml);
   ..
   ..
   ..
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-12 21:31:57

来自微软文档

如何修复违规行为

  • 不要编写原始XML。相反,使用XML-编码其输入的方法或属性。
  • 或者,XML -在编写原始XML之前对输入进行编码。
  • 或者,使用杀菌剂验证用户输入,用于原始类型转换和XML编码。

您可以做的是使用Load而不是Parse来配置读取器设置(参见XmlReaderSettings),如下所示:

代码语言:javascript
运行
复制
LockUserXml(string xml)
{
   var xmlReader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings() { XmlResolver = null });
   var doc = XDocument.Load(xmlReader);
   ..
   ..
}

另见如何预防XXE攻击( XmlDocument in .net)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67062069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档