EN JP CN

SV.STRUTS.VALIDMET

SV.STRUTS.VALIDMET

このエラーは、クラスが org.apache.struts.action.ActionForm を拡張し、'validate' メソッドを実装していない場合に報告されます。クラスが ValidatorForm を拡張する場合、このエラーは報告されません。 この場合、validate メソッドが XML 仕様に基づいて自動的に生成されるためです。

脆弱性とリスク

validate メソッドは、struts フレームワークがフィールドを検証するための標準的な手法です。未検証のフィールドは、Web アプリケーションにとって最大のセキュリティ問題です。

Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。 このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があり、ヒューマンエラーを取り込む可能性があるため、安全でないソースはユーザーが指定した任意のデータである可能性があります。

軽減と防止

validate メソッドを定義し、すべてのフォームフィールドを検証します。整数フィールドは、サイズ、ネガティブ性、ゼロでないことなどについてチェックします。文字列フィールドについては、情報のタイプに基づき、さらに複雑なチェックが必要です。未検証のフィールドは、SQL インジェクション、クロスサイトスクリプティングなど、さまざまなセキュリティ脆弱性を引き起こす可能性があります。

例 1

10 public class SV_STRUTS_VALIDMET_Sample_1 extends ActionForm {
11     private String name;
12     private String birthdayString;
13 
14     public String getName() {
15         return name;
16     }
17     public void setName(String name) {
18         this.name = name;
19     }
20     public String getBirthday() {
21         return birthdayString;
22     }
23     public void setBirthday(String birthday) {
24         this.birthdayString = birthday;
25     }
26 }

SV.STRUTS.VALIDMET が 10 行目のクラス宣言に対して報告されています。Struts:フォーム 'SV_STRUTS_VALIDMET_Sample_1' には 'validate' メソッドが定義されていません