声纳污点分析:javasecurity:S5131:强制清理Java枚举:



我有一个用Java开发的Rest API。我正在使用枚举作为我的请求参数,让我们说性别是枚举之一,并说性别的可能值是 M,F 我知道请求参数是用户控制的。声纳抱怨它被污染了,我需要对输入进行消毒。

我不明白枚举是如何被污染的,以及为什么它会带来风险。我们不能将任何随机值传递给枚举。

期待您的建议。

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
}

枚举的任何错误值都会给你HTTP 400错误请求,这完全没问题。

我在声纳论坛上问过同样的问题

上述枚举问题将在声纳的未来版本中修复。一旦我得到更多信息,我会在这里发表评论。

枚举问题 - 来自声纳源的回复

相关内容

  • 没有找到相关文章

最新更新