- Змішані
- 23 вересня 2026 р. о 02:35 UTC
- Авторизація
- Kamo
- Про нас
- d1a8762
/завантажити завантажений весь файл вбайт [] через ImageService.downloadDocument до подавати його; /bulk-download побудував весь ZIP (або об'єднаний PDF) як один байт[] в DocumentPrepareService перед реагацією; завантаження до 3 ГБ проти цього сервісу ~1.4 GB Капітально-навантажувача 100-накладок не мала обмеження розміру за ним — 100 нерозрахованих документів запитати сотні гігабайтів в одному запиту. buildZip також писав Img.fileName прямо в ZipEntry без санітарії, тому документ перейменований на щось схоже ****************************************************************************************************************************************************************************************************************************************************************************** (Назва файлу - керований користувач - безкоштовний текст, змінений через /update/filename/{imgId}) виготовив архів, запис якого відкрився екстрактором, який не працює Самий захист від zip-slip, пише за межами цільового каталогу, на якому б OS не робив вилучення. - /завантажити зараз потоки через MinIOStorageService.openRange + StreamingResponseBody, точно так само, як / потік вже зробив, замість буферизації всього файлу. (Drops ImageService.downloadDocument's Dl-перший/dl-last книжковий ефект — підтверджений відмерлих від гроші: ніщо в Java Backend коли-небудь читає Img.dlFirstDate/dlLastDate, тільки коли-небудь пише їх. Окремий аудит ImgLogDownload рядок за допомогою записуЗавантажитиПодії, який читає назад за допомогою панелі завантаження, не змінюється.) - /bulk-download dedupes зажадала ids до 100-ти ковпачок і пер-імітованої роботи. - /bulk-download відмовляється від прямо (400) після того, як вибрані документи об'єднані Img.fileSize проходить 500 Мб, а не намагатися зливати/завантажити і ризикувати номер — відмовлено, не мовчазно обрізається, тому що повноти є точкою сипучих EXPORT. - buildZip санітарно-гігієнічний супровід кожного вхідного імені до кінцевого сегмента шляху (покриття на обох / і \, так як Витяжка може бути на OS цей сервер не контролюється, закриваючи зазор zip-slip. НЕ ДОН, повідомляє як відомий зазор: buildZip/mergePdfs все ще будувати їх результат як один байт[] перш ніж реагувати на те, що він безпосередньо до HTTP-відповіді — 500 Мб-кап тепер обмежує, що до відома стеля (від необрізається), але не усувається. Перетворення їх в натиснути на вихідний пристрій, який буде дозволяти /bulk-download потік теж; відкладений, тому що він Зміни у публічних підписах DocumentPrepareService, що переходять на три існуючі тестові файли (мокси, які в даний час стукають байт[]-перевертаючи методи), для MEDIUM-severity решта — свідомий виклик об'єктів, що не передається. Нові тести: ****************************************************************************************************************************************************************************************************************************************************************************** (7 випадків для sanitizeZipEntryName) і три випадки Додано в ImagingControllerMediaAssocTest (поток-не-куперинг, id dedupe, розмір шапки). Mutation-checked: reverting ImagingController.java до його префіксного стану перетворює три нові випадки контролера червоний; ревертація sanitizeZipEntryName до `return name;` перетворює 5 з 7 zip-slip випадки червоний (на 6-му, вже безпечне звичайне ім'я файлу, є правильним способом). Повний комплект: 741 тести зелений (від 731; +10 новий).
