SV.STRUTS.RESETMET
このエラーは、クラスが org.apache.struts.action.ActionForm を拡張し、'reset' メソッドを実装していない場合に検出されます。
脆弱性とリスク
reset メソッドは、要求パラメーターがフォームに入力される前に呼び出されます。一部のフィールドがリセットされていない場合、それらのフィールドは古い値を保持しており、攻撃者に利用される可能性があります。クライアント要求は攻撃者が簡単に操作可能であるため、要求内の特定フィールドの存在に左右されないようにする必要があります。
Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があり、ヒューマンエラーを取り込む可能性があるため、安全でないソースはユーザーが指定した任意のデータである可能性があります。
軽減と防止
クライアントが入力可能なフィールドはすべてリセットします。フィールドがクライアントによって入力できない場合、通常、Form が何らかのビジネスロジックを実装しようとしているか、ActionForm の一部ではなく、別のクラスによって実行される必要がある出力フォームとして使用されることを意味します。
例 1
コピー
public class SV_STRUTS_RESETMET_Sample_1 extends ActionForm {
private String name;
private String[] cars = new String[10];
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCar(int i) {
return cars[i];
}
public void setCar(int i, String car) {
this.cars[i] = car;
}
}
SV.STRUTS.RESETMET が 10 行目のフォーム宣言に対して報告されています。Struts: フォーム 'SV_STRUTS_RESETMET_Sample_1' には 'reset' メソッドが定義されていません。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。