0

Javaで開発されたRest APIがあります。私はリクエストパラメータとしてEnumを使用しています.GenderはEnumの1つであり、Genderの可能な値はM、Fです.requestParametrsはユーザーが制御していることを理解しています.Sonarは、それが汚染されており、入力をサニタイズする必要がある.

Enum がどのように汚染される可能性があり、なぜそれがリスクをもたらすのかを理解できていません。Enum にランダムな値を渡すことはできません。

あなたの提案を楽しみにしています。

public ResponseEntity<String> answers(
                      @RequestParam(value = "genderId", required = true) 
                      GenderEnum genderId) { // genderID is tainted as its controlled by User input


 SomeObject param = new SomeObject();
 param.setGenderId(genderId); //Polluted too, as requestParam is not sanitized

 //Lets assume you make some call to DB
  String result=dbCall(genderId);   //This is tainted too

   return "Hello"+genderId; //Result is also tainted as its also using Non-santized input

}

Enum の値が間違っていると、HTTP 400 Bad Requestが返されますが、これはまったく問題ありません。

私はソナーフォーラムで同じ質問をしました

4

1 に答える 1