- 관련 상품
- 2026년 9월 23일 오전 2:35 UTC
- 이름 *
- Kamo
- 뚱 베어
- d1a8762
/download는 ImageService.downloadDocument를 통해 바이트[]로 전체 파일을로드 서빙; /bulk-download 전체 ZIP (또는 PDF 병합) 한 바이트[]로 내장 응답하기 전에 DocumentPrepareService; 업로드는이 서비스의 ~1.4 GB에 대해 최대 3 GB 실행 heap, and /bulk-download's 100-id cap have no size limit behind it — 100 uncapped document could 단일 요청에 기가 바이트의 수백을 요청합니다. buildZip는 Img.fileName을 똑똑히 썼습니다. a ZipEntry with no sanitization, 그래서 문서는 뭔가에 이름을 변경 ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** (fileName은 user-controlled — free-text, 변경 /update/filename/{imgId})는 해당 항목이 생성되어 있지 않는 추출기에 의해 열립니다. 자체는 zip-slip에 대한 감시, 어떤 OS가 수행되는 대상 디렉토리 밖에 쓰기 추출. - /download now streams via MinIOStorageService.openRange + StreamingResponseBody, 정확히 같은 /stream는 이미, 전체 파일을 버퍼링 대신. (Drops ImageService.downloadDocument의 경우) dl-first/dl-last bookkeeping side effect - grep에 의해 죽은 확인 : Java 백엔드에서 아무것도 이제는 Img.dlFirstDate/dlLastDate를 읽습니다. 별도의 ImgLogDownload 감사 recordDownloadEvent를 통해, 다운로드-history 패널에 의해 다시 읽고, 변경되지 않습니다.) - /bulk-download dedupes는 100-id 모자와 per-item 일의 앞에 ids를 요구했습니다. - /bulk-download는 선택된 문서가 Img.fileSize 패스를 결합한 한 번 (400)를 삭제합니다. 500 MB, 병합 / 우편을 시도하고 OOM 위험 - 거부, 침묵하지 truncated, Completeness는 대량 수출의 점입니다. - buildZip는 최종 경로 세그먼트 (/과 \ 모두에 분할, 이후 Extractor는 OS에있을 수 있습니다. 이 서버는 제어하지 않습니다. zip-slip gap를 닫습니다. DONE, 알려진 간격으로보고 : buildZip/mergePdfs는 여전히 하나의 바이트[]로 결과를 구축 HTTP 응답에 직접 스트리밍하지 않고 응답하기 전에 - 500 MB 모자 지금 알려진 천장 (바운드에서 아래로)에 바인딩하지만 제거되지 않습니다. 변환하기 caller-supplied OutputStream에 쓰기는 /bulk-download 스트림을 너무 허용한다. 때문에 deferred DocumentPrepareService의 공개 서명 변경, 세 가지 기존 테스트 파일로 rippling (Mocks는 현재 byte[]-returning 메소드를 stub), MEDIUM-severity의 경우 이미 캡처 keepder — a deliberate 범위 호출, oversight. 새로운 시험: ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** (7의 경우 sanitizeZipEntryName) 및 세 가지 경우 ImagingControllerMediaAssocTest (streaming-not-buffering, id dedupe, 크기 모자)에 추가하십시오. Mutation-checked: pre-fix 상태에 ImagingController.java를 반전 컨트롤러 케이스 레드; sanitizeZipEntryName을 `return name;`는 5 zip-slip의 회전 빨간 케이스 (6 일, 이미 안전한 정규적인 파일 이름은, 정확한 방법 중 하나입니다). 풀 스위트: 741 테스트 그린 (was 731; +10 새로운).
