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”