【问题标题】:XElement.Parse && XDocument.Parse are vulnerable to XML injection in c#XElement.Parse && XDocument.Parse 在 c# 中容易受到 XML 注入的影响
【发布时间】:2021-07-07 18:02:40
【问题描述】:

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

LockUserXml(string xml)
{
   var doc = XDocument.Parse(xml);
   ..
   ..
}

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

【问题讨论】:

  • 我的回答解决了你的问题吗?

标签: c# asp.net asp.net-mvc fortify


【解决方案1】:

来自Microsoft doc

如何解决 XML 违规问题

  • 不要编写原始 XML。而是使用对其输入进行 XML 编码的方法或属性。

  • 或者,在编写原始 XML 之前对输入进行 XML 编码。

  • 或者,使用原始类型的消毒剂来验证用户输入 转换和 XML 编码

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

LockUserXml(string xml)
{
   var xmlReader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings() { XmlResolver = null });
   var doc = XDocument.Load(xmlReader);
   ..
   ..
}

另见How to prevent XXE attack ( XmlDocument in .net)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-17
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多