- Dikirim
- 23 September 2026 pukul 02.35 UTC
- Penulis
- Kamo
- Commit
- d1a8762
/ download dimuat seluruh file ke dalam byte [] melalui ImageService.downloadDocument sebelum melayani itu; / bulk-download dibangun seluruh ZIP (atau digabung PDF) sebagai satu byte [] dalam Dokumenter PrepareService sebelum menanggapi; uploads menjalankan hingga 3 GB terhadap layanan ini ~ 1.4 GB stack, and / bulk-download 's 100- id cap tidak memiliki batas ukuran di belakangnya - 100 dokumen uncapped bisa meminta ratusan gigabyte dalam satu permintaan. buildZip juga menulis Img.fileName langsung ke sebuah ZipEntry tanpa sanitasi, sehingga sebuah dokumen berganti nama menjadi sesuatu seperti * * * * * * * * * * * * * * * (berkas Nama dikendalikan - bebas teks, berubah melalui / update / filename / {imgId}) menghasilkan sebuah archive yang entri, dibuka oleh sebuah extractor yang tidak jaga sendiri terhadap zip-slip, tulis diluar direktori target pada OS manapun yang melakukan Mengekstrak. - # download now streams via MinIOStorageService.openrange + StreamingResponseBody, persis seperti / stream sudah dilakukan, bukan buffering seluruh berkas. (Drops ImageService.downloadDocument 's dl-first / dl-last efek samping pembukuan - dikonfirmasi mati oleh grep: tidak ada di backend Java pernah membaca Img.dlFirstDate / dlLastDate, hanya pernah menulis mereka. Audit ImgLogUnduh terpisah baris melalui recordDownloadEvent, yang IS dibaca kembali oleh panel sejarah download-, tidak berubah.) - / bulk- download ID diminta sebelum tutup 100-id dan per- item bekerja. - / bulk- download menolak langsung (400) setelah dokumen yang dipilih 'gabungan Img.fileSize lewat 500 MB, daripada mencoba penggabungan / zip dan mempertaruhkan OOM - menolak, bukan diam-diam dipotong, karena komplement adalah titik export massal. - buildZip membersihkan setiap nama entri ke segmen jalur akhir (membelah pada keduanya / dan\, sejak ekstraktor mungkin pada OS server ini tidak mengontrol), menutup gap zip- slip. TIDAK DAPAT, dilaporkan sebagai gap yang dikenal: buildZip / mergePdfs masih membangun hasil mereka sebagai satu byte [] sebelum menanggapi daripada streaming secara langsung ke respon HTTP - tutup 500 MB sekarang (Yang kaku kasar) wataknya kaku lagi kasar (selain dari itu, yang terkenal kejahatannya) dia adalah seseorang yang dianggap sebagai orang Quraisy, padahal dia bukan dari kalangan mereka, yaitu Walid bin Mughirah. Ayahnya menjulukinya sebagai orang Quraisy setelah ia berumur delapan belas tahun. Mengkonversi mereka ke tulis ke dalam caller- diberikan OutputStream akan membiarkan / bulk- download stream juga; ditangguhkan karena perubahan dokumen persiapan layanan publik tanda tangan, rippling ke dalam tiga berkas tes yang ada (mengejek saat ini stub byte [] -returning metode), untuk sebuah MEDIUM- tingkat, already-capped sisa - panggilan scope disengaja, bukan pengawasan. Tes baru: * * * * * * * * * * * * * * * (7 kasus untuk sanitizeZipEntryName) dan tiga kasus ditambahkan ke Pengontrol Imaginasi MediaAslest Test (memperkecil -not- buffering, id dedupe, ukuran cap). Mutasi - dicentang: Membalikkan Pengatur Gambar .java ke keadaan pre- fix nya ternyata tiga baru kasus controller merah; membalikkan sanitizeZipEntryName ke 'nama kembali;' ternyata 5 dari 7 zip-slip kasus merah (6, sebuah nama berkas biasa yang sudah-aman, benar tidak terpengaruh baik cara). Full suite: 741 test green (was 731; + 10 new).
