对于下面提到的代码,我在CheckMarx 报告中得到了 Trust Boundary Violation 。
错误描述 - 方法“getResponse”从元素请求中获取用户输入。此元素的值在未经过适当清理或验证的情况下流经代码,最终存储在服务器端会话对象,在 'parseRequest' 方法中。**
代码 -
@Context
HttpHeaders httpHeader;
void parseRequest(SomeRequestType inputRequest) {
HashMap<String, Data> requestData = inputRequest.getRequestData(httpHeader);
if (requestData != null) {
if (Strings.isNullOrEmpty(inputRequest.getId())) {
Data data = requestData.get("data");
var dataID = data.getID();
if ((dataID != null) && Pattern.matches("[0-9]+", dataID)) {
inputRequest.setId(dataID);
ThreadContext.put("ID", dataID);
}
}
}
}
我在下一行得到 checkmarx 漏洞,因为没有经过适当的清理或验证
ThreadContext.put("ID", dataID);
有人可以帮助我,如何正确清理上述行。