La classe XslCompiledTransform est un processeur XSLT qui prend en charge la syntaxe de XSLT 1.0. Il s'agit d'une nouvelle implémentation, qui présente des avantages en matière de performance par rapport à la classe XslTransform, obsolète. La structure de la classe XslCompiledTransform est très proche de celle de la classe XslTransform. La méthode Load charge et compile la feuille de style, alors que la méthode Transform exécute la transformation XSLT.
La prise en charge de la fonction document() XSLT et des blocs de script incorporés est désactivée par défaut. Vous pouvez activer ces fonctionnalités en créant un objet XsltSettings et en le passant à la méthode Load.
Pour plus d'informations, consultez Utilisation de la classe XslCompiledTransform et Migration depuis la classe XslTransform.
Considérations sur la sécurité
Lorsque vous créez une application qui utilise la classe XslCompiledTransform, vous devez prendre en compte les éléments suivants et leurs conséquences :
-
Le script XSLT est désactivé par défaut. Le script XSLT doit être activé uniquement si la prise en charge du script est requise et si vous travaillez dans un environnement dont le niveau de confiance est suffisant.
-
La fonction document() XSLT est désactivée par défaut. Si vous activez la fonction document(), limitez les ressources auxquelles l'utilisateur peut accéder en passant un objet XmlSecureResolver à la méthode Transform.
-
Les objets d'extension sont activés par défaut. Si un objet XsltArgumentList contenant des objets d'extension est passé à la méthode Transform, ceux-ci sont utilisés.
-
Les feuilles de style XSLT peuvent inclure des références à d'autres fichiers et des blocs de script incorporés. Un utilisateur malveillant peut exploiter cette situation en vous fournissant des données ou des feuilles de style qui, lors de leur exécution, peuvent être traitées par le système jusqu'à ce que l'ordinateur manque de ressources.
-
Avec des applications XSLT qui s'exécutent dans un environnement d'approbation mixte, une feuille de style peut être usurpée. Par exemple, un utilisateur malveillant peut charger un objet avec une feuille de style nuisible et le remettre à un autre utilisateur qui appelle par la suite la méthode Transform et exécute la transformation.
Vous pouvez atténuer ces problèmes de sécurité en n'activant pas les scripts ou la fonction document() si la feuille de style ne provient pas d'une source fiable, et en n'acceptant pas d'objets XslCompiledTransform, de feuilles de style XSLT ou de données XML source provenant d'une source non fiable.