- Shiked
- 23 Eylül 2026 02:35 UTC
- Yazar
- Kamo
- Commit
- d1a8762
/ Tüm dosyayı bir byte[] ImageService üzerinden yüklemiştir. Ona hizmet etmek; /bulk-download tüm ZIP'i (veya PDF'yi bir tane olarak) inşa etti Cevap vermeden önce DokümanPrepareHizmet; Bu hizmetin ~1.4 GB'e karşı 3 GB'ye kadar yükler. Oap ve /bulk-download'un 100-id kapağının arkasında hiçbir boyut sınırlaması yoktu - 100 uncapped belge olabilirdi Tek bir istekte yüzlerce gigabayt isteyin. BuildZip ayrıca Img.fileName'i doğrudan yazdım Hiçbir sanitizasyon olmadan bir ZipEntry, bu yüzden bir belge bir şeye yeniden adlandırılmış **************** (fileName kullanıcı kontrollüdür - ücretsiz metin, değiştir /update/filename/{imgId}) giriş yapan bir arşiv üretti, bir ekstraktör tarafından açıldı Kendini zip-slip'e karşı koruyor, AG'nin yaptığı hedef dizinin dışında yazıyor çıkartmak. - / Artık MinIOStorageService ile akışlar.openRange + StreamingResponseBody, tam olarak da benzer. /stream zaten tüm dosyayı rahatsız etmek yerine yaptı. (Drops ImageService.downloadDocument's dl-ilk/dl-last kitap koruma yan etkisi – grep tarafından ölüyü doğruladı: Java'da hiçbir şey geri dönmedi Her zaman Img.dlFirstDate/dlLastDate okur, sadece onları yazıyor. Ayrı ImgLogDownload denetim Rekorla sıra, indir-history paneli tarafından geri okunan, değişmemiş.) - /bulk-download dedupes 100-id cap ve per-item çalışmasından önce boşları istedi. - /bulk-download outright (400) bir kez seçilmiş belgelerin bir Img.fileSize geçer. 500 MB, birleşme/zip denemek ve bir OOM riske atmak yerine - sessizce reddetti, Söylenti, çünkü tamlık bir EXPORT noktasıdır. - her giriş adını son yol segmentine (her iki / ve \'e rağmen) sanitize eder. Ekstraor bir OS'de olabilir bu sunucu kontrol etmez, zip-slip boşluğu kapat. DONE, bilinen bir boşluk olarak rapor edilmedi: inşaZip/mergePdfs hala bir tane olarak sonuçlarını inşa ediyor[] Doğrudan HTTP yanıtına göndermeden önce - 500 MB kapak şimdi Bilinen bir tavana (çalışılmamıştan aşağı) bağlı olarak, ancak ortadan kaldırılmamış değildir. Onları dönüştürmek için Bir caller-tümlenmiş ÇıktıStream da /bulk-download akışına izin verecekti; bu yüzden ertelendi, DokümanPrepareService'ın kamu imzaları, mevcut üç test dosyasına indirgeniyor (mocks şu anda byte[]-returning yöntemleri), bir MEDIUM-batımı için, zaten-capped Geri kalan - kasıtlı bir kapsama çağrısı, bir gözetim değil. Yeni testler: **************** (7 sanitizeZipEntryName) ve üç vaka GörüntülemeControllerMediaAssocTest (streaming-not-buffering, id dedupe, boyut kapağı). Mutation-checked: Pre-fix durumuna yeniden giriş Kontrol vakaları kırmızı; "return name" için sanitizeZipEntryName'i tekrarlamak; ' 7 zip-slipin 5'i döndürür Vakalar kırmızı (6., zaten güvenli bir sıradan dosya adı, doğru şekilde etkilenmez). Full suite: 741 test yeşil ( 731 oldu; +10 yeni).
