Classe System.Xml.Xsl.XslCompiledTransform

Cet article vous offre des remarques complémentaires à la documentation de référence pour cette API.

La classe XslCompiledTransform est un processeur XSLT prenant en charge la syntaxe XSLT 1.0. Il s’agit d’une nouvelle implémentation et cela comprend des gains de performances par rapport à la classe obsolète XslTransform. La structure de la classe XslCompiledTransform est très similaire à celle de la classe XslTransform. La méthode Load charge et compile la feuille de style, tandis que la méthode Transform exécute la transformation XSLT.

La prise en charge de la fonction XSLT document() et des blocs de script incorporés est désactivée par défaut. Ces fonctionnalités peuvent être activées 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 de sécurité

Lors de la création d'une application qui utilise la classe XslCompiledTransform, vous devez connaître les éléments suivants et leurs implications :

  • Le script XSLT est désactivé par défaut. Le script XSLT ne doit être activé que si la prise en charge des scripts est nécessaire et si vous travaillez dans un environnement totalement fiable.

  • La fonction document() XSLT est désactivée par défaut. Si vous activez la fonction document(), limitez les ressources accessibles en transmettant 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 transmis à 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 intégrés. Un utilisateur malveillant peut exploiter cette fonction en fournissant des données ou feuilles de style qui, une fois exécutées, peuvent entraîner l'exécution du traitement jusqu'à l'épuisement des ressources de l'ordinateur.

  • Les applications XSLT fonctionnant dans un environnement fiable mixte peuvent perturber la feuille de style. Un utilisateur malveillant peut, par exemple, charger un objet avec une feuille de style nuisible et le transmettre à un autre utilisateur qui appelle ensuite la méthode Transform et exécute la transformation.

Vous pouvez réduire ces problèmes de sécurité en désactivant le script ou la fonction document() sauf si la feuille de style provient d'une source fiable et en refusant les objets XslCompiledTransform, les feuilles de style XSLT ou les données de base XML provenant d'une source non fiable.