gpt4 book ai didi

c# - 如何修复不可信数据的反序列化

转载 作者:行者123 更新时间:2023-12-03 13:42:13 24 4
gpt4 key购买 nike

我的实用程序类中有一个通用的反序列化 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);
}
}

问候,
NAK

最佳答案

使用 XmlReader 进行反序列化而不是 FileStream
//第2行

XmlReader xmlreader = XmlReader.Create(new FileStream(xmlFilePath, FileMode.Open)); 
这是微软解决方案的链接 - CA5369: Use XmlReader for Deserialize
这是二进制反序列化的另一个链接 - CA2300: Do not use insecure deserializer BinaryFormatter

关于c# - 如何修复不可信数据的反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47880088/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com