Chúng tôi vui mừng thông báo GroupDocs.Annotation for .NET 26.10, được phát hành vào tháng 10 năm 2026. Đây là bản phát hành tập trung vào bảo mật: tài liệu không còn tự động tải hình ảnh từ xa, bảng kiểu hay các tệp liên kết, và các thành viên mới của LoadOptions cho phép bạn quyết định chính xác những gì có thể được tải. Bản phát hành cũng nâng cấp các engine tài liệu nền tảng, cập nhật một phụ thuộc có lỗ hổng và sửa một số vấn đề.

Những gì mới trong bản phát hành này

Mã Thể loại Tóm tắt
ANNOTATIONNET-2663 ⚠️ Cải tiến Các tài nguyên bên ngoài không còn được tải mặc định (các điều khiển LoadOptions mới)
ANNOTATIONNET-2687 ✨ Cải tiến Nâng cấp các engine tài liệu nền tảng
ANNOTATIONNET-2672 🔒 Bảo mật Cập nhật System.Security.Cryptography.Pkcs lên 8.0.2 (CVE-2026-84008 / CVE-2026-70162)
ANNOTATIONNET-2102 🔧 Sửa Sửa FileTypeNotSupportedException khi trích xuất chú thích từ tài liệu EML
ANNOTATIONNET-1903 🔧 Sửa Sửa tài liệu được chú thích bằng các phiên bản cũ không mở được trên .NET 8
ANNOTATIONNET-2689 🔧 Sửa Sửa việc mất xoay trang PDF 90 độ khi lưu

Các tài nguyên bên ngoài không còn được tải mặc định

Một tài liệu có thể tham chiếu tới các tài nguyên bên ngoài: một <img src="https://..."> trong trang HTML hoặc phần thân email, một hình ảnh liên kết trong tài liệu Word, một bảng kiểu từ xa hoặc một liên kết workbook bên ngoài. Trước đây, việc mở, xem trước hoặc lưu tài liệu như vậy khiến GroupDocs.Annotation yêu cầu các tài nguyên đó từ mạng hoặc từ một chia sẻ tệp.

Trên máy chủ xử lý các tài liệu không tin cậy, đây là một rủi ro server-side request forgery (SSRF): tài liệu có thể buộc máy chủ gọi tới các địa chỉ nội bộ, và một đường UNC có thể rò rỉ thông tin đăng nhập Windows của tiến trình.

Bắt đầu từ phiên bản 26.10, các tài nguyên bên ngoài sẽ bị bỏ qua theo mặc định đối với các tài liệu xử lý văn bản, HTML, email, trình chiếu và bảng tính:

  • Không có yêu cầu. Không có yêu cầu mạng hoặc chia sẻ tệp nào được thực hiện cho các tài nguyên được tài liệu tham chiếu, trong bất kỳ thao tác nào: Get, Add, Save, GeneratePreview và GetDocumentInfo.
  • Trình giữ chỗ trống. Một hình ảnh bị bỏ qua sẽ được hiển thị dưới dạng trình giữ chỗ trong suốt, và liên kết gốc sẽ được giữ lại trong tài liệu đã lưu.
  • Nội dung nhúng vẫn hoạt động. Các phần cid: của email, URI data: và hình ảnh nhúng luôn được tải.
  • Chú thích hình ảnh không bị ảnh hưởng. ImageAnnotation.ImagePath vẫn được tải từ URL.

Đây là một thay đổi hành vi. Nếu tài liệu của bạn phụ thuộc vào việc hiển thị hình ảnh hoặc bảng kiểu từ xa, hãy cho phép chúng một cách rõ ràng bằng các thành viên mới của LoadOptions:

Thành viên Mặc định Mô tả
SkipExternalResources true Bỏ qua tài nguyên bên ngoài. Đặt thành false để khôi phục hành vi trước 26.10.
WhitelistedResources empty Tên máy chủ hoặc tiền tố URI tuyệt đối sẽ được tải ngay cả khi tài nguyên bị bỏ qua.
ExternalResourceHandler null Được gọi cho mỗi tài nguyên bên ngoài; nó có thể cho phép, bỏ qua hoặc cung cấp nội dung của tài nguyên.

Cho phép chỉ các máy chủ tin cậy (được khuyến nghị):

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
}

Kiểm tra, cho phép hoặc thay thế mỗi tài nguyên bằng một trình xử lý:

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");
    }
}

Nâng cấp các engine tài liệu

Các engine xử lý văn bản, bảng tính, trình chiếu, PDF, sơ đồ, email, hình ảnh, CAD và đồ họa được đóng gói đã được cập nhật lên phiên bản tháng 10 năm 2026. Các tài liệu và bản xem trước trang được tạo lại có thể có một chút khác biệt ở mức byte hoặc pixel, nhưng vẫn tương đương về mặt hình ảnh.

Đối với các dự án .NET 6 và .NET 8, các gói runtime hiện phụ thuộc vào SkiaSharp 4.152.1. Nếu dự án của bạn tham chiếu trực tiếp tới SkiaSharp 3.x, hãy cập nhật lên 4.x.

Cập nhật bảo mật

Các engine tài liệu đưa vào System.Security.Cryptography.Pkcs 8.0.0 hoặc 8.0.1, bị ảnh hưởng bởi CVE-2026-84008 và CVE-2026-70162. GroupDocs.Annotation hiện tham chiếu tới bản vá 8.0.2 trên mọi framework mục tiêu. Không cần thay đổi mã nguồn.

Các sửa lỗi

  • EML từ luồng. Một tin nhắn EML bắt đầu bằng MIME-Version: 1.0 đã bị nhận dạng là một kho lưu trữ MHT, và việc mở nó từ luồng gây ra FileTypeNotSupportedException. Các tin nhắn như vậy hiện mở được cả từ luồng và từ tệp, và các tệp MHT hiện đã được hỗ trợ như tài liệu email.
  • Tài liệu cũ trên .NET 8. Các tài liệu được chú thích bằng các phiên bản trước 26.6 đã không mở được trên .NET 8 với NotSupportedException. Bây giờ chúng mở được: các chú thích legacy bị bỏ qua kèm cảnh báo log, và các chú thích mới có thể được thêm và lưu. Một vấn đề liên quan đến việc lưu lại các bản trình chiếu (PPTX) mà chú thích không thể đọc lại đã được sửa trên mọi framework.
  • Xoay PDF 90 độ. Việc xoay một trang PDF bằng Annotator.Rotation đã hoạt động cho 180 và 270 độ, nhưng xoay 90 độ bị mất khi lưu. Bây giờ nó được giữ lại cho mọi góc:
using (Annotator annotator = new Annotator("input.pdf"))
{
    annotator.ProcessPages = 1;                 // the page to rotate
    annotator.Rotation = RotationDocument.on90; // previously ignored
    annotator.Save("output.pdf");
}

Các thay đổi API công cộng

Bản phát hành thêm các thành viên sau:

Không có thành viên công cộng nào bị loại bỏ hoặc thay đổi.

Cách nhận bản cập nhật

NuGet

Cài đặt hoặc nâng cấp lên GroupDocs.Annotation 26.10.0 bằng NuGet. Gói sẽ tự động giải quyết gói runtime cho framework mục tiêu của bạn (.NET Framework 4.6.2, .NET 6 hoặc .NET 8):

dotnet add package GroupDocs.Annotation --version 26.10.0

Tải trực tiếp

Tải bản phát hành từ trang GroupDocs.Annotation for .NET 26.10 .

Tài nguyên