Siamo lieti di annunciare GroupDocs.Annotation for .NET 26.10, rilasciato a ottobre 2026. Questa è una versione incentrata sulla sicurezza: i documenti non caricano più immagini remote, fogli di stile o file collegati autonomamente, e i nuovi membri di LoadOptions ti consentono di decidere esattamente cosa può essere caricato. La versione aggiorna anche i motori di documento sottostanti, aggiorna una dipendenza vulnerabile e risolve diversi problemi.
Novità di questa versione
| Chiave | Categoria | Riepilogo |
|---|---|---|
| ANNOTATIONNET-2663 | ⚠️ Miglioramento | Le risorse esterne non vengono più caricate per impostazione predefinita (nuovi controlli LoadOptions) |
| ANNOTATIONNET-2687 | ✨ Miglioramento | Aggiorna i motori di documento sottostanti |
| ANNOTATIONNET-2672 | 🔒 Sicurezza | Aggiorna System.Security.Cryptography.Pkcs a 8.0.2 (CVE-2026-84008 / CVE-2026-70162) |
| ANNOTATIONNET-2102 | 🔧 Correzione | Correggi FileTypeNotSupportedException durante l’estrazione delle annotazioni da documenti EML |
| ANNOTATIONNET-1903 | 🔧 Correzione | Correggi i documenti annotati da versioni precedenti che non si aprono su .NET 8 |
| ANNOTATIONNET-2689 | 🔧 Correzione | Correggi la perdita della rotazione di pagina PDF di 90 gradi al salvataggio |
Le risorse esterne non vengono più caricate per impostazione predefinita
Un documento può fare riferimento a risorse esterne: un <img src="https://..."> in una pagina HTML o nel corpo di un’e‑mail, un’immagine collegata in un documento Word, un foglio di stile remoto o un collegamento a una cartella di lavoro esterna. Fino a ora, aprire, visualizzare in anteprima o salvare tale documento faceva sì che GroupDocs.Annotation richiedesse tali risorse dalla rete o da una condivisione di file.
Su un server che elabora documenti non attendibili, questo rappresenta un rischio di server‑side request forgery (SSRF): un documento potrebbe far chiamare al server indirizzi interni, e un percorso UNC potrebbe far trapelare le credenziali Windows del processo.
A partire da 26.10, le risorse esterne vengono ignorate per impostazione predefinita per i documenti di elaborazione testi, HTML, e‑mail, presentazione e foglio di calcolo:
- Nessuna richiesta. Non viene effettuata alcuna richiesta di rete o di condivisione file per le risorse a cui il documento fa riferimento, in nessuna operazione:
Get,Add,Save,GeneratePrevieweGetDocumentInfo. - Segnaposti vuoti. Un’immagine ignorata viene renderizzata come un segnaposto trasparente, e il collegamento originale viene mantenuto nel documento salvato.
- Il contenuto incorporato funziona ancora. Le parti
cid:di un’e‑mail, gli URIdata:e le immagini incorporate vengono sempre caricate. - Le annotazioni immagine non sono interessate.
ImageAnnotation.ImagePathviene ancora caricato da un URL.
Questo è un cambiamento di comportamento. Se i tuoi documenti dipendono dal rendering di immagini o fogli di stile remoti, consentili esplicitamente con i nuovi membri di LoadOptions:
| Membro | Predefinito | Descrizione |
|---|---|---|
SkipExternalResources |
true |
Ignora le risorse esterne. Impostalo su false per ripristinare il comportamento pre‑26.10. |
WhitelistedResources |
empty | Nomi host o prefissi URI assoluti che vengono caricati anche quando le risorse sono ignorate. |
ExternalResourceHandler |
null |
Chiamato per ogni risorsa esterna; può consentirla, ignorarla o fornire il suo contenuto. |
Consenti solo host attendibili (raccomandato):
LoadOptions loadOptions = new LoadOptions
{
// SkipExternalResources rimane true (il valore predefinito)
WhitelistedResources = { "cdn.example.com", "https://intranet.example.com/images/" }
};
using (Annotator annotator = new Annotator("input.html", loadOptions))
{
annotator.Save("output.html"); // vengono caricate solo le immagini dalle due posizioni nella whitelist
}
Ispeziona, consenti o sostituisci ogni risorsa con un gestore:
class AuditingResourceHandler : ExternalResourceHandler
{
public override void OnLoading(ExternalResourceLoadingArgs args)
{
Console.WriteLine($"{args.Uri}: {(args.Skipped ? "skipped" : "loaded")}");
// fornisce una copia locale invece di andare in rete
if (args.Uri == "https://example.com/logo.png")
args.Data = File.ReadAllBytes("logo.png");
}
}
Motori di documento aggiornati
I motori integrati per l’elaborazione testi, foglio di calcolo, presentazione, PDF, diagramma, e‑mail, imaging, CAD e rendering grafico sono stati aggiornati alle versioni di ottobre 2026. I documenti rigenerati e le anteprime di pagina possono differire leggermente a livello di byte o pixel pur rimanendo visivamente equivalenti.
Per i progetti .NET 6 e .NET 8, i pacchetti runtime ora dipendono da SkiaSharp 4.152.1. Se il tuo progetto fa riferimento direttamente a SkiaSharp 3.x, aggiornalo a 4.x.
Aggiornamento di sicurezza
I motori di documento includono System.Security.Cryptography.Pkcs 8.0.0 o 8.0.1, che sono interessati da CVE-2026-84008 e CVE-2026-70162. GroupDocs.Annotation ora fa riferimento al 8.0.2 corretto su tutti i framework di destinazione. Non sono necessarie modifiche al codice.
Correzioni
- EML da uno stream. Un messaggio EML che iniziava con
MIME-Version: 1.0veniva rilevato come archivio MHT, e l’apertura da uno stream generavaFileTypeNotSupportedException. Ora tali messaggi si aprono allo stesso modo da uno stream e da un file, e i file MHT sono ora supportati come documenti e‑mail. - Documenti più vecchi su .NET 8. I documenti annotati da versioni precedenti a 26.6 non si aprivano su .NET 8 con
NotSupportedException. Ora si aprono: le annotazioni legacy vengono ignorate con un avviso nel log, e le nuove annotazioni possono essere aggiunte e salvate. Un problema correlato con presentazioni risalvate (PPTX) le cui annotazioni non potevano essere rilette è stato risolto su tutti i framework. - Rotazione PDF di 90 gradi. Ruotare una pagina PDF con
Annotator.Rotationfunzionava per 180 e 270 gradi, ma una rotazione di 90 gradi veniva persa al salvataggio. Ora viene mantenuta per ogni angolo:
using (Annotator annotator = new Annotator("input.pdf"))
{
annotator.ProcessPages = 1; // la pagina da ruotare
annotator.Rotation = RotationDocument.on90; // precedentemente ignorata
annotator.Save("output.pdf");
}
Modifiche all’API pubblica
La versione aggiunge i seguenti membri:
LoadOptions.SkipExternalResourcesLoadOptions.WhitelistedResourcesLoadOptions.ExternalResourceHandlerExternalResourceHandlerclasseExternalResourceLoadingArgsclasse
Nessun membro pubblico è stato rimosso o modificato.
Come ottenere l’aggiornamento
NuGet
Installa o aggiorna a GroupDocs.Annotation 26.10.0 usando NuGet. Il pacchetto risolve automaticamente il pacchetto runtime per il tuo framework di destinazione (.NET Framework 4.6.2, .NET 6 o .NET 8):
dotnet add package GroupDocs.Annotation --version 26.10.0
Download diretto
Scarica la versione dalla pagina GroupDocs.Annotation for .NET 26.10.