如何解决XElement.Parse && XDocument.Parse 在 C# 中容易受到 XML 注入
下面的代码被 fortify 检测为 XML 注入。请有人帮我解决这个问题。
LockUserXml(string xml)
{
var doc = XDocument.Parse(xml);
..
..
}
LocalUserXml(XmlElement root,ExportXmlParameter param)
{
XElement rootElement = XElement.Parse(root.OuterXml);
..
..
..
}
解决方法
如何解决 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);
..
..
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。