Freigeben über


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 XSLT 1.0-Syntax unterstützt. Es handelt sich um eine neue Implementierung und umfasst Leistungsgewinne im Vergleich zur veralteten XslTransform Klasse. Die Struktur der XslCompiledTransform Klasse ist der Klasse sehr ähnlich XslTransform . 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 eingebettete Skriptblöcke ist standardmäßig deaktiviert. Diese Features können aktiviert werden, indem ein XsltSettings Objekt erstellt und an die Load Methode übergeben wird.

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

Sicherheitsüberlegungen

Beim Erstellen einer Anwendung, die die XslCompiledTransform Klasse verwendet, sollten Sie die folgenden Elemente und deren Auswirkungen beachten:

  • XSLT-Skripting ist standardmäßig deaktiviert. XSLT-Skripting sollte nur aktiviert werden, wenn Sie Skriptunterstützung benötigen und in einer voll vertrauenswürdigen Umgebung arbeiten.

  • Die XSLT-Funktion document() ist standardmäßig deaktiviert. Wenn Sie die document() Funktion aktivieren, beschränken Sie die Ressourcen, auf die zugegriffen werden kann, indem Sie ein XmlSecureResolver Objekt an die Transform Methode übergeben.

  • Erweiterungsobjekte sind standardmäßig aktiviert. Wenn ein XsltArgumentList Objekt, das Erweiterungsobjekte enthält, an die Transform Methode übergeben wird, werden sie verwendet.

  • XSLT-Stylesheets können Verweise auf andere Dateien und eingebettete Skriptblöcke enthalten. Ein böswilliger Benutzer kann dies ausnutzen, indem er Ihnen Daten oder Stylesheets bereitstellt, die bei Ausführung dazu führen können, dass Ihr System solange verarbeitet, bis dem Computer die Ressourcen knapp werden.

  • XSLT-Anwendungen, die in einer gemischten Vertrauensumgebung ausgeführt werden, können zu Manipulation von Stylesheets führen. Beispielsweise kann ein böswilliger Benutzer ein Objekt mit einem schädlichen Stylesheet laden und an einen anderen Benutzer übergeben, der die Transform Methode anschließend aufruft und die Transformation ausführt.

Diese Sicherheitsprobleme können behoben werden, indem skripting oder die document() Funktion nicht aktiviert wird, es sei denn, das Stylesheet stammt aus einer vertrauenswürdigen Quelle und akzeptiert keine XslCompiledTransform Objekte, XSLT-Stylesheets oder XML-Quelldaten aus einer nicht vertrauenswürdigen Quelle.