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 diedocument()
-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.