Condividi tramite


Classe System.Xml.Xsl.XslCompiledTransform

Questo articolo fornisce osservazioni supplementari alla documentazione di riferimento per questa API.

La XslCompiledTransform classe è un processore XSLT che supporta la sintassi XSLT 1.0. Si tratta di una nuova implementazione e include miglioramenti delle prestazioni rispetto alla classe obsoleta XslTransform . La struttura della XslCompiledTransform classe è molto simile alla XslTransform classe . Il Load metodo carica e compila il foglio di stile, mentre il Transform metodo esegue la trasformazione XSLT.

Il supporto per la funzione XSLT document() e i blocchi di script incorporati sono disabilitati per impostazione predefinita. Queste funzionalità possono essere abilitate creando un XsltSettings oggetto e passandolo al Load metodo .

Per altre informazioni, vedere Uso della classe XslCompiledTransform e migrazione dalla classe XslTransform.

Considerazioni sulla sicurezza

Quando si crea un'applicazione in cui viene utilizzata la classe XslCompiledTransform, è necessario conoscere i seguenti elementi e le relative implicazioni:

  • Gli script XSLT sono disattivati per impostazione predefinita. Lo script con XSLT deve essere abilitato solo se è necessario il supporto per gli script e solo all'interno di un ambiente completamente attendibile.

  • La funzionalità XSLT document() è disattivata per impostazione predefinita. Se si abilita la funzione document(), limitare le risorse a cui è possibile accedere passando un oggetto XmlSecureResolver al metodo Transform.

  • Gli oggetti di estensione sono abilitati per impostazione predefinita. Vengono utilizzati se un oggetto XsltArgumentList contenente oggetti di estensione viene passato al metodo Transform.

  • Nei fogli di stile XSLT possono essere inclusi riferimenti ad altri file e a blocchi di script incorporati. Un utente malintenzionato può sfruttare questa situazione fornendo dati o fogli di stile che, quando eseguiti, possono determinare l'elaborazione continua da parte del sistema finché le risorse del computer diventeranno insufficienti.

  • Le applicazioni XSLT che vengono eseguite in un ambiente con attendibilità mista potrebbero consentire lo spoofing del foglio di stile. Ad esempio, un utente malintenzionato può caricare un oggetto con un foglio di stile dannoso e trasferirlo a un altro utente che in un secondo momento chiama il metodo Transform ed esegue la trasformazione.

I problemi relativi alla sicurezza possono essere limitati non attivando gli script o la funzionalità document(), a meno che il foglio di stile non provenga da un'origine attendibile, e non accettando gli oggetti XslCompiledTransform, i fogli di stile XSLT o i dati di origine XML da un'origine non attendibile.