Classe System.Xml.Xsl.XslCompiledTransform
Este artigo fornece observações complementares à documentação de referência para essa API.
A classe XslCompiledTransform é um processador XSLT compatível com a sintaxe do XSLT 1.0. É uma nova implementação e inclui ganhos de desempenho em comparação com a obsoleta classe XslTransform. A estrutura da classe XslCompiledTransform é muito semelhante à da classe XslTransform. O método Load carrega e compila a folha de estilos, enquanto o método Transform executa a transformação XSLT.
O suporte à função XSLT document()
e os blocos de script inseridos são desabilitados por padrão. Esses recursos podem ser habilitados criando-se um objeto XsltSettings e passando-o para o método Load.
Para obter mais informações, confira Usando a classe XslCompiledTransform e Migrando da classe XslTransform.
Considerações de segurança
Ao criar um aplicativo que usa a classe de XslCompiledTransform , você deve estar ciente dos seguintes itens e suas implicações:
O script XSLT é desativado por padrão. O script XSLT deverá ser habilitado somente se você precisar de suporte a script e estiver trabalhando em um ambiente totalmente confiável.
A função XSLT
document()
é desativada por padrão. Se você ativar a função dedocument()
, restringir os recursos que podem ser acessados passando um objeto de XmlSecureResolver para o método de Transform .Os objetos de extensão estão habilitados por padrão. Se um objeto XsltArgumentList contendo objetos de extensão for passado para o método Transform, eles serão utilizados.
As folhas de estilos XSLT podem incluir referências a outros arquivos e blocos de script inseridos. Um usuário mal-intencionado pode explorar isso fornecendo a você folhas de dados ou estilos que, quando executados, possa obrigar o processamento pelo seu sistema até que o computador esteja com poucos recursos.
Os aplicativos XSLT que executam em um ambiente de confiança misturado podem levar a falsificação de folha de estilos. Por exemplo, um usuário mal-intencionado pode carregar um objeto com uma folha de estilos prejudicial e entregá-lo fora a outro usuário que subseqüentemente chama o método de Transform e executa a transformação.
Essas questões de segurança podem ser abrandadas não ativando scripts ou função de document()
a menos que a folha de estilos vem de uma fonte não confiável, e retornando objetos de XslCompiledTransform , dados de folhas de estilos XSLT, ou de código-fonte XML de uma fonte não confiável.