c# - Checkmarx报错 "Deserialization of Untrusted Data"如何解决

标签 c# security azure-devops asp.net-core-webapi checkmarx

我们在 Azure DevOps Pipeline 中集成了 Checkmarx 静态代码分析器工具。在运行我们的管道时,我们在下面的代码行中遇到高风险的“反序列化不受信任的数据”错误。你能帮我解决这个问题吗?

C#代码:

using System.Text.Json;

string reqBodyParams = await new StreamReader(request.Body).ReadToEndAsync();
var requestData = JsonSerializer.Deserialize<CalcRequestBody>(reqBodyParams);

CalcRequestBody 类:

public class CalcRequestBody
{
  public string CalcFormula { get; set; }
  public string UserName { get; set; }
}

最佳答案

我终于找到了从 Checkmarx 工具获取“反序列化不受信任数据”错误的解决方案。

using Newtonsoft.Json;

var requestData = JsonConvert.DeserializeObject<CalcRequestBody>(reqBodyParams, new JsonSerializerSettings
{
   TypeNameHandling = TypeNameHandling.None
});

关于c# - Checkmarx报错 "Deserialization of Untrusted Data"如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70959274/

相关文章:

C# 圆形颜色到列表中的颜色

Java 和 SSL - java.security.NoSuchAlgorithmException

security - 为什么握手协议(protocol)是sslv3,而client hello是sslv2

api - Azure DevOps 构建定义和管道之间有什么区别和关系?

c# - 如何使用隐藏代码检查日期是否已存在?

c# - 正则表达式而不是 string.replace 函数

php - 我应该从项目中删除 mysql_error 函数吗?

azure-devops - 如何在 Azure DevOps 中复制文件?

Azure CLI 任务不适用于 Windows 构建代理

c# - unity WaitForSeconds 等待时间超过预期