Kami dengan senang hati mengumumkan GroupDocs.Annotation for .NET 26.10, yang dirilis pada Oktober 2026. Ini adalah rilis yang berfokus pada keamanan: dokumen tidak lagi mengambil gambar remote, lembar gaya, atau file terhubung secara otomatis, dan anggota LoadOptions baru memungkinkan Anda menentukan secara tepat apa yang dapat dimuat. Rilis ini juga meningkatkan mesin dokumen yang mendasarinya, memperbarui dependensi yang rentan, dan memperbaiki beberapa masalah.
Apa yang baru di rilis ini
| Kunci | Kategori | Ringkasan |
|---|---|---|
| ANNOTATIONNET-2663 | ⚠️ Peningkatan | Sumber daya eksternal tidak lagi dimuat secara default (kontrol LoadOptions baru) |
| ANNOTATIONNET-2687 | ✨ Peningkatan | Meningkatkan mesin dokumen yang mendasari |
| ANNOTATIONNET-2672 | 🔒 Keamanan | Perbarui System.Security.Cryptography.Pkcs ke 8.0.2 (CVE-2026-84008 / CVE-2026-70162) |
| ANNOTATIONNET-2102 | 🔧 Perbaikan | Perbaiki FileTypeNotSupportedException saat mengekstrak anotasi dari dokumen EML |
| ANNOTATIONNET-1903 | 🔧 Perbaikan | Perbaiki dokumen yang dianotasi oleh versi lama gagal dibuka pada .NET 8 |
| ANNOTATIONNET-2689 | 🔧 Perbaikan | Perbaiki rotasi halaman PDF sebesar 90 derajat yang hilang saat disimpan |
Sumber daya eksternal tidak lagi dimuat secara default
Sebuah dokumen dapat merujuk ke sumber daya di luar dirinya: sebuah <img src="https://..."> dalam halaman HTML atau badan email, gambar terhubung dalam dokumen Word, lembar gaya remote, atau tautan buku kerja eksternal. Sampai saat ini, membuka, meninjau, atau menyimpan dokumen semacam itu membuat GroupDocs.Annotation meminta sumber daya tersebut dari jaringan atau berbagi file.
Pada server yang memproses dokumen tidak terpercaya, ini merupakan risiko server-side request forgery (SSRF): sebuah dokumen dapat membuat server memanggil alamat internal, dan jalur UNC dapat membocorkan kredensial Windows dari proses.
Mulai dengan 26.10, sumber daya eksternal dilewati secara default untuk dokumen pengolah kata, HTML, email, presentasi, dan spreadsheet:
- Tidak ada permintaan. Tidak ada permintaan jaringan atau berbagi file yang dibuat untuk sumber daya yang dirujuk oleh dokumen, dalam operasi apa pun:
Get,Add,Save,GeneratePreview, danGetDocumentInfo. - Placeholder kosong. Gambar yang dilewati dirender sebagai placeholder transparan, dan tautan asli tetap disimpan dalam dokumen yang disimpan.
- Konten tersemat tetap berfungsi. bagian
cid:dari email, URIdata:dan gambar tersemat selalu dimuat. - Anotasi gambar tidak terpengaruh.
ImageAnnotation.ImagePathmasih dimuat dari URL.
Ini adalah perubahan perilaku. Jika dokumen Anda bergantung pada gambar remote atau lembar gaya yang dirender, izinkan secara eksplisit dengan anggota LoadOptions baru:
| Anggota | Default | Deskripsi |
|---|---|---|
SkipExternalResources |
true |
Lewati sumber daya eksternal. Atur ke false untuk mengembalikan perilaku sebelum 26.10. |
WhitelistedResources |
empty | Nama host atau awalan URI absolut yang dimuat meskipun sumber daya dilewati. |
ExternalResourceHandler |
null |
Dipanggil untuk setiap sumber daya eksternal; dapat mengizinkannya, melewatkannya, atau menyediakan kontennya. |
Izinkan hanya host tepercaya (disarankan):
LoadOptions loadOptions = new LoadOptions
{
// SkipExternalResources stays true (the default)
WhitelistedResources = { "cdn.example.com", "https://intranet.example.com/images/" }
};
using (Annotator annotator = new Annotator("input.html", loadOptions))
{
annotator.Save("output.html"); // only images from the two whitelisted locations are loaded
}
Periksa, izinkan, atau ganti setiap sumber daya dengan handler:
class AuditingResourceHandler : ExternalResourceHandler
{
public override void OnLoading(ExternalResourceLoadingArgs args)
{
Console.WriteLine($"{args.Uri}: {(args.Skipped ? "skipped" : "loaded")}");
// serve a local copy instead of going to the network
if (args.Uri == "https://example.com/logo.png")
args.Data = File.ReadAllBytes("logo.png");
}
}
Mesin dokumen yang ditingkatkan
Mesin pengolah kata, spreadsheet, presentasi, PDF, diagram, email, imaging, CAD, dan rendering grafis yang disertakan telah diperbarui ke rilis Oktober 2026. Dokumen yang dihasilkan kembali dan pratinjau halaman mungkin sedikit berbeda pada tingkat byte atau piksel sementara tetap secara visual setara.
Untuk proyek .NET 6 dan .NET 8, paket runtime kini bergantung pada SkiaSharp 4.152.1. Jika proyek Anda secara langsung merujuk SkiaSharp 3.x, perbarui ke 4.x.
Pembaruan keamanan
Mesin dokumen menyertakan System.Security.Cryptography.Pkcs 8.0.0 atau 8.0.1, yang terpengaruh oleh CVE-2026-84008 dan CVE-2026-70162. GroupDocs.Annotation kini merujuk pada 8.0.2 yang sudah dipatch pada setiap kerangka target. Tidak diperlukan perubahan kode.
Perbaikan
- EML dari aliran. Pesan EML yang dimulai dengan
MIME-Version: 1.0terdeteksi sebagai arsip MHT, dan membuka dari aliran melemparFileTypeNotSupportedException. Pesan semacam itu kini dapat dibuka dengan cara yang sama dari aliran maupun file, dan file MHT kini didukung sebagai dokumen email. - Dokumen lama pada .NET 8. Dokumen yang dianotasi oleh versi sebelum 26.6 gagal dibuka pada .NET 8 dengan
NotSupportedException. Sekarang mereka dapat dibuka: anotasi lama dilewati dengan peringatan log, dan anotasi baru dapat ditambahkan serta disimpan. Masalah terkait dengan presentasi yang disimpan kembali (PPTX) yang anotasinya tidak dapat dibaca kembali telah diperbaiki pada semua kerangka. - Rotasi PDF sebesar 90 derajat. Memutar halaman PDF dengan
Annotator.Rotationberfungsi untuk 180 dan 270 derajat, tetapi rotasi 90 derajat hilang saat disimpan. Sekarang rotasi tersebut dipertahankan untuk setiap sudut:
using (Annotator annotator = new Annotator("input.pdf"))
{
annotator.ProcessPages = 1; // the page to rotate
annotator.Rotation = RotationDocument.on90; // previously ignored
annotator.Save("output.pdf");
}
Perubahan API Publik
Rilis ini menambahkan anggota berikut:
LoadOptions.SkipExternalResourcesLoadOptions.WhitelistedResourcesLoadOptions.ExternalResourceHandlerExternalResourceHandlerclassExternalResourceLoadingArgsclass
Tidak ada anggota publik yang dihapus atau diubah.
Cara mendapatkan pembaruan
NuGet
Instal atau tingkatkan ke GroupDocs.Annotation 26.10.0 menggunakan NuGet. Paket ini secara otomatis menyelesaikan paket runtime untuk kerangka target Anda (.NET Framework 4.6.2, .NET 6, atau .NET 8):
dotnet add package GroupDocs.Annotation --version 26.10.0
Unduhan langsung
Unduh rilis dari halaman GroupDocs.Annotation for .NET 26.10 .