Veracode 为 C# 中的公共字符串属性引发“技术特定的输入验证问题 (CWE ID 100)”

Posted

技术标签:

【中文标题】Veracode 为 C# 中的公共字符串属性引发“技术特定的输入验证问题 (CWE ID 100)”【英文标题】:Veracode throws "Technology-Specific Input Validation Problems (CWE ID 100)" for a public string property in C# 【发布时间】:2017-11-01 12:41:18 【问题描述】:

Veracode 为 C# 中的公共字符串属性抛出“技术特定的输入验证问题 (CWE ID 100)”。

这些是我已经尝试过的格式,都存在相同的缺陷。

选项:1

    public string MyProperty  get; set; 

选项:2

    private string _myProperty;
    public string MyProperty
    
        get
        
            return _myProperty;
        
        set
        
            _myProperty = value;
        
    

选项:3

    private string _myProperty;
    public string MyProperty
    
        get
        
            return _myProperty ?? string.Empty;
        
        set
        
            _myProperty = value;
        
    

谁能说出原因?

【问题讨论】:

【参考方案1】:

此 URL 包含一些建议对流程进行潜在修复的信息:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/formats-and-model-binding/model-validation-in-aspnet-web-api

所以,最终,该属性只需要一个属性,它看起来像这样:

[Required]
public string MyProperty  get; set; 

这是 System.ComponentModel.DataAnnotations 命名空间中可能的属性的完整列表。

https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations(v=vs.110).aspx

【讨论】:

以上是关于Veracode 为 C# 中的公共字符串属性引发“技术特定的输入验证问题 (CWE ID 100)”的主要内容,如果未能解决你的问题,请参考以下文章

C# 预处理器指令中的源代码和 PDB 文件中的行号

C#中的LINQ问题

C#基本语法学习

C# 基础知识

[C#] 学会使用异常(整理中)

C# winform:从其他表单访问公共属性以及静态和公共属性之间的区别