System.Xml.Xsl.XslCompiledTransform-Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die XslCompiledTransform-Klasse ist ein XSLT-Prozessor, der die Syntax von XSLT 1.0 unterstützt. Es handelt sich um eine neue Implementierung und umfasst im Vergleich zur veralteten XslTransform-Klasse Leistungssteigerungen. Die Struktur der XslCompiledTransform-Klasse ist der Klasse XslTransform sehr ähnlich. Die Load-Methode lädt und kompiliert das Stylesheet, während die Transform-Methode die XSLT-Transformation ausführt.

Die Unterstützung für die XSLT-Funktion document() und für eingebettete Skriptblöcke ist standardmäßig deaktiviert. Diese Features können durch Erstellen eines XsltSettings-Objekts aktiviert und das an die Load-Methode übergeben wird.

Weitere Informationen finden Sie unter Verwenden der XslCompiledTransform-Klasse und Migrieren von der XslTransform-Klasse.

Sicherheitshinweise

Beim Erstellen einer Anwendung, die die XslCompiledTransform-Klasse verwendet, sollten Ihnen die folgenden Elemente und deren Auswirkungen bekannt sein:

  • Die XSLT-Skriptverarbeitung ist standardmäßig deaktiviert. XSLT-Skripts sollten nur aktiviert werden, wenn eine Skriptunterstützung erforderlich ist und Sie mit einer vollständig vertrauenswürdigen Umgebung arbeiten.

  • Die XSLT-document()-Funktion ist standardmäßig deaktiviert. Wenn Sie die document()-Funktion aktivieren, schränken Sie die verfügbaren Ressourcen ein, indem Sie der XmlSecureResolver-Methode ein Transform-Objekt übergeben.

  • Erweiterungsobjekte sind standardmäßig aktiviert. Wenn der XsltArgumentList-Methode ein Transform-Objekt übergeben wird, das Erweiterungsobjekte enthält, so werden diese verwendet.

  • XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten. Ein böswilliger Benutzer kann dies ausnutzen, indem er Daten oder Stylesheets bereitstellt, deren Verarbeitung die Ressourcen des Computers erschöpft.

  • XSLT-Anwendungen, die in einer teilweise vertrauenswürdigen Umgebung ausgeführt werden, können einem Stylesheet-Spoofing ausgesetzt sein. Ein böswilliger Benutzer könnte z. B. ein Objekt mit einem schädlichen Stylesheet laden und es an einen anderen Benutzer übermitteln, der die Transform-Methode aufruft und die Transformation ausführt.

Diese Sicherheitsprobleme können durch Deaktivieren von Skripts oder der document()-Funktion bei aus nicht vertrauenswürdigen Quellen stammenden Stylesheets und durch das Abweisen von XslCompiledTransform-Objekten, XSLT-Stylesheets und XML-Quelldaten aus nicht vertrauernswürdigen Quellen reduziert werden.