我有以下简单类,但veracode报告以下缺陷
输入验证不足(7个缺陷(ASP.NET配置错误:模型验证不正确(CWE ID 1174((7个漏洞(
请帮我解决这个问题
代码:
namespace Automation.Web.Configuration
{
public class AppSettings
{
public string BaseURL { get; set; }
public string SearchAll { get; set; }
public string SearchMyReviews { get; set; }
public string SearchEscalated { get; set; }
public string SearchAllUrl
{
get { return BaseURL + SearchAll; }
}
public string SearchMyReviewsUrl
{
get { return BaseURL + SearchMyReviews; }
}
public string SearchEscalatedUrl
{
get { return BaseURL + SearchEscalated; }
}
}
}
将Microsoft的一个Data Annotation属性应用于属性以验证输入。
例如:
public class UserModel
{
public Guid Id { get; set; }
public string Username { get; set; }
public string Email { get; set; }
}
我们可以通过在每个属性上使用注释来纠正这一点,比如:
public class UserModel
{
[Key]
public Guid Id { get; set; }
[RegularExpression("^[a-zA-Z-0-9]{3,16}$")]
public string Username { get; set; }
[EmailAddress]
public string Email { get; set; }
}
尝试在每个字符串属性中放入StringLength((Data Annotation。
如果您在控制器中发现此缺陷(CWE ID 1174(,则
- 避免异步方法
- 使用"绑定"属性
- 使用ModelState.IsValid
如果您在模型中发现此缺陷(CWE ID 1174(,则
- 使用数据注释属性,如〔Required〕、〔MaxLength〕等