NAK*_*NAK 7 .net c# serialization
我的实用程序类中有一个通用的反序列化 C# 代码。下面是代码示例。当我们对代码进行安全扫描时,我们在第 3 行发现了“不可信数据反序列化”漏洞。xml 文件的反序列化似乎很常见。我不确定我们如何解决这个问题。任何人都可以指导我吗?
public static T DeserializeXmlFile<T>(string xmlFilePath)
{
try
{
XmlSerializer xs= GetSerializer(typeof(T)); //Line#1
FileStream fs= new FileStream(xmlFilePath, FileMode.Open); //Line#2
var result = (T)xs.Deserialize(fs); //Line #3
fs.Close(); //Line#4
return result; //Line#5
}
catch (Exception ex)
{
LogException("Deserialization exception");
return default(T);
}
}
Run Code Online (Sandbox Code Playgroud)
问候, NAK
使用 XmlReader 代替 FileStream 进行反序列化
//第2行
XmlReader xmlreader = XmlReader.Create(new FileStream(xmlFilePath, FileMode.Open));
Run Code Online (Sandbox Code Playgroud)
这是微软解决方案的链接 - CA5369: Use XmlReader for Deserialize
这是二进制反序列化的另一个链接 - CA2300:不要使用不安全的反序列化器 BinaryFormatter