как игнорировать атрибут type при публикации файла в виде составной формы при весенней загрузке? - PullRequest
0 голосов
/ 22 мая 2019

Привет, у меня приложение весенней загрузки с контроллером отдыха. я могу опубликовать файл в методе ресурса в контроллере.

@PostMapping("/files")
@Timed
public ResponseEntity<FileDTO> createFile(MultipartFile file, HttpServletRequest request) throws URISyntaxException {
    log.debug("REST request to save File");
    if (file.isEmpty()) {
        return new ResponseEntity("Please select a file!", HttpStatus.BAD_REQUEST);
    }
    UUID id = fileService.save(file, null);
    if (id != null) {
        return ResponseEntity.created(new URI("/api/files/" + id))
            .headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, id.toString()))
            .body(new FileDTO(id, request.getRequestURL() + "/" + id));
    } else {
        return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
    }
}

вот мой запрос curl к контроллеру, и он успешно получает файл.

curl -v  -X POST "http://localhost:8080/api/files" -H "Authorization: Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJnbG9iYWxhZG1pbkBsb2NhbGhvc3QiLCJhdXRoIjoiUk9MRV9HTE9CQUxfURNSU4iLCJleHAiOjE1NTg2MjQ2NjF9.XV8Ibcqoh7a6FWN6BF89rH4abyraaS86jsP04Y5vuNrH-rnJ3Se0T7ogA0t7oXXzrVsvZUpPgkm5pGHotd6a_g" -H "accept: */*" -H "Content-Type: multipart/form-data1" -F "file=@virus.exe;type=image/jpeg"

Проблема в том, что я могу опубликовать exe-файл с типом = image / jpeg. это помогает злоумышленнику обойти некоторые проверки типа контента в моем приложении. Как я могу настроить свой пружинный контроллер, чтобы игнорировать "type =" атрибут любая помощь приветствуется.

...