私はこのコントローラをJavaで持っています:
@Controller
public class AuthenticationController extends AbstractController {
@RequestMapping(value = Constantes.MAPPING_AUTH_BASE_ASP, method = { RequestMethod.POST })
public String authenticate(@Valid ComunicationWithAspRequest comunicationWithAspRequest, BindingResult result,
RedirectAttributes redirectAttributes, HttpSession sesion) throws Exception {
...
...
...
}
}
Fortifyでコードをスキャンすると、オブジェクトcomunicationWithAspRequestにより大量割り当て:安全でないバインダー構成の脆弱性が発生します。バインドプロセスで使用されるHTTPリクエストパラメータと無視されるHTTPリクエストパラメータを制御することはできますか?
問題を参照することもできます Rooを使用したSpring MVCでの大量割り当てを防止 。
あなたのケースでは、Spring MVCによって提供される@ InitBinderを使用できます。 @ InitBinderは、jsonおよびBeanマッピングのホワイトリストを指定します。
私の経験では、自動バインディングに@ RequestBodyを使用しました。 @ JsonIgnoreを追加して、マッピングに含めないプロパティを指定する必要があります。
SimpleController.Java
@RequestMapping(value="/simple")
public String simple(@Valid @RequestBody User user){
simpleService.doSomething();
}
User.Java
public class User{
private String name;
@JsonIgnore
private String dummy;
public void getName(){return name;}
public void setName(name){this.name = name;}
public void getDummy(){return dummy;}
public void setDummy(dummy){this.dummy= dummy;}
}