Проблема SonnarQube: измените код, чтобы он не создавал URL-адрес из данных, контролируемых пользователем.JAVA

Программисты JAVA общаются здесь
Anonymous
Проблема SonnarQube: измените код, чтобы он не создавал URL-адрес из данных, контролируемых пользователем.

Сообщение Anonymous »

Я столкнулся с ошибкой SonarQube и не могу понять, в чем проблема. Проблема SonnarQube в том, что измените этот код, чтобы он не создавал URL-адрес из данных, контролируемых пользователем.

Код: Выделить всё

@Value("${...}")
String apiKey;

@Value("${...}")
String apiUrl;

public Response apiResponse(String location) {

HttpHeaders headers = new HttpHeaders();
headers.add("x-apikey", apiKey);

HttpEntity entity = new HttpEntity(headers);

String url = apiUrl + location; // SonarQube issue: tainted value is propagated

Response response = null;

try {

ResponseEntity responseEntity = restTemplate.exchange(url, HttpMethod.GET, entity, Response.class); // SonarQube issue: Tainted value is used to perform a security- sensitive operation.

response = responseEntity.getBody();

} catch(Exception){

// doesn't throw anything

}

return response;

}

@Cacheable(...)
Response cacheResponse(String location, String tokenKey) {

return apiResponse(location); // SonarQube issue: tainted value is propagated
}
Это устранило проблему, но почему? и как я могу применить это в приведенном выше коде?

Код: Выделить всё

 String url = apiUrl + location; // SonarQube issue: tainted
Вместо этого я просто попробовал жестко запрограммировать значение местоположения и устранил проблему.

Код: Выделить всё

String url = apiUrl + "location";
Так странно...

Подробнее здесь: https://stackoverflow.com/questions/698 ... trolled-da

Вернуться в «JAVA»