SV.STRUTS.VALIDMET
如果一个类扩展了 org.apache.struts.action.ActionForm 并且未实施“validate”方法,将检测到此错误。请注意,如果类扩展了 ValidatorForm,validate 方法根据 XML 规范自动生成,在这种情况下不会报告此错误。
漏洞与风险
validate 方法是 struts 框架用于验证字段的标准机制。对于 Web 应用程序,未经验证的字段是最大的安全问题。
Klocwork 安全漏洞 (SV) 检查器可识别可能创建危险数据的调用;这些调用被视为不安全的来源。用户所提供的任何数据都可能是不安全的来源,因为用户可能是攻击者,或者可能引入人为错误。
缓解与预防
定义验证方法并验证所有表单字段。例如,整型字段可按大小、负值度和非零值来检查。根据信息类型,字符串字段需要更复杂的检查。未经验证的字段可导致许多安全漏洞,如 SQL 注入、跨站点脚本等。
示例 1
复制
public class SV_STRUTS_VALIDMET_Sample_1 extends ActionForm {
private String name;
private String birthdayString;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getBirthday() {
return birthdayString;
}
public void setBirthday(String birthday) {
this.birthdayString = birthday;
}
}
针对第 10 行的类声明报告 SV.STRUTS.VALIDMET:Struts:表单“SV_STRUTS_VALIDMET_Sample_1”未定义方法“validate”