У меня есть пример кода контроллера загрузки Spring, как показано ниже:
@Slf4j
@RestController
public class PersonController {
private final PersonService PersonService;
public PersonController(PersonService PersonService) {
this.PersonService = PersonService;
}
@PostMapping(value = "/v1/Person", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public PersonResponseDto Person(@Valid @RequestBody PersonRequestDto PersonRequestDto,
@RequestHeader(value = "x-correlation-id", required = false) String correlationId) {
String something = HtmlUtils.htmlEscape(PersonRequestDto.getSomething());
PersonRequestDto newRequestDto = PersonRequestDto.builder()
.something(something)
.date(PersonRequestDto.getDate())
.build();
return PersonService.save(newRequestDto);
}
}
public class PersonRequestDto {
@NotBlank
private String something;
private LocalDate date;
}
Даже если я выполнял санитарную обработку поля строки something
, контрольная метка по-прежнему жалуется:
потоковчерез код без надлежащей очистки или проверки и в конечном итоге отображается для пользователя в методе doSomething
Я не знаю, какой смысл или как санировать поле типа java LocalDate
, а также дляТребование XSS: нет необходимости очищать поле, отличное от строки.
Кто-нибудь знает, как написать код, чтобы сделать checkmarx счастливым? Я знаю, что это расстроено из-за того, что я написал какой-то код, просто позволяющий работать некоторому инструменту.