4

我有以下 C# 代码从 Checkmarx 收到“高”错误。我看不出有什么问题。

var dataDirectoryPath = AppDomain.CurrentDomain.GetData("DataDirectory").ToString(); 
var json = File.ReadAllText($"{dataDirectoryPath}{Path.DirectorySeparatorChar}somefile.json");

var settings = new
    JsonSerializerSettings{TypeNameHandling=TypeNameHandling.None};     
var targetPathSettings = JsonConvert.DeserializeObject<List<TargetPathSetting>>(json, settings);

它给出了这个错误:

yyy文件中xxx处理的序列化对象ReadAllText被zzz文件中的DeserializeObject反序列化

C#代码如下:

public class TargetPathSetting
{
    public string PathSettingName { get; set; }
    public PathSetting PathSetting { get; set; }
}


public class PathSetting
{
    public string BaseUrl { get; set; }
    public string ApplicationIdUri { get; set; }
}

我看不出文件中的任何内容都会导致任何类型的问题,尤其是 TypeNameHandling.None 设置。

4

1 回答 1

1

问题在于 c# 的标准 Checkmarx 查询。在这种情况下,Checkmarx 无法识别此代码的更正。要修复它,您应该使用 CxAudit 并修改此查询。

于 2019-10-11T08:17:47.573 回答