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が返されますが、これはまったく問題ありません。