System.Xml.Xsl.XslCompiledTransform – třída
Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.
Třída XslCompiledTransform je procesor XSLT, který podporuje syntaxi XSLT 1.0. Jedná se o novou implementaci a zahrnuje zvýšení výkonu ve srovnání s zastaralou XslTransform třídou. Struktura XslCompiledTransform třídy je velmi podobná XslTransform třídě. Metoda Load načte a zkompiluje šablonu stylů, zatímco Transform metoda provede transformaci XSLT.
Podpora funkcí XSLT document()
a bloků vložených skriptů jsou ve výchozím nastavení zakázána. Tyto funkce lze povolit vytvořením objektu XsltSettings a jeho předáním metodě Load .
Další informace naleznete v tématu Použití třídy XslCompiledTransform a migrace z třídy XslTransform.
Bezpečnostní aspekty
Při vytváření aplikace, která používá XslCompiledTransform třídu, byste měli vědět o následujících položkách a jejich dopadech:
Skriptování XSLT je ve výchozím nastavení zakázané. Skriptování XSLT by mělo být povolené jenom v případě, že potřebujete podporu skriptů a pracujete v plně důvěryhodném prostředí.
Funkce XSLT
document()
je ve výchozím nastavení zakázaná. Pokud funkci povolítedocument()
, omezte prostředky, ke kterým je možné přistupovat předáním XmlSecureResolver objektu metodě Transform .Objekty rozšíření jsou ve výchozím nastavení povolené. XsltArgumentList Pokud je objekt obsahující rozšiřující objekt předán metoděTransform, jsou využívány.
Šablony stylů XSLT mohou obsahovat odkazy na jiné soubory a vložené bloky skriptů. Uživatel se zlými úmysly to může zneužít tím, že vám poskytne data nebo šablony stylů, které při spuštění můžou způsobit, že systém bude zpracovávat, dokud počítač nebude mít málo prostředků.
Aplikace XSLT, které běží v prostředí smíšené důvěryhodnosti, můžou vést k falšování identity šablon stylů. Uživatel se zlými úmysly může například načíst objekt se škodlivou šablonou stylů a předat ho jinému uživateli, který metodu Transform následně zavolá a provede transformaci.
Tyto problémy se zabezpečením je možné zmírnit tím, že nepovolí skriptování nebo document()
funkci, pokud šablona stylů nepochází z důvěryhodného zdroje a nepřijme XslCompiledTransform objekty, šablony stylů XSLT nebo zdrojová data XML z nedůvěryhodného zdroje.