Share via


System.Xml.Xsl.XslCompiledTransform sınıfı

Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.

XslCompiledTransform sınıfı, XSLT 1.0 söz dizimini destekleyen bir XSLT işlemcidir. Bu yeni bir uygulamadır ve eski XslTransform sınıfla karşılaştırıldığında performans kazanımları içerir. sınıfının yapısı XslCompiledTransform sınıfa XslTransform çok benzer. Load yöntemi, stil sayfasını yükler ve derlerkenTransform, yöntem XSLT dönüşümünü yürütür.

XSLT document() işlevi ve eklenmiş betik blokları için destek varsayılan olarak devre dışıdır. Bu özellikler bir XsltSettings nesne oluşturulup yöntemine Load geçirilerek etkinleştirilebilir.

Daha fazla bilgi için bkz. XslCompiledTransform Sınıfını Kullanma ve XslTransform Sınıfından Geçiş.

Güvenlik konuları

sınıfını XslCompiledTransform kullanan bir uygulama oluştururken aşağıdaki öğelerin ve bunların etkilerinin farkında olmanız gerekir:

  • XSLT betiği varsayılan olarak devre dışıdır. XSLT betik oluşturma yalnızca betik desteğine ihtiyacınız varsa ve tam olarak güvenilir bir ortamda çalışıyorsanız etkinleştirilmelidir.

  • XSLT document() işlevi varsayılan olarak devre dışıdır. İşlevi document() etkinleştirirseniz, bir nesneyi Transform yöntemine geçirerek XmlSecureResolver erişilebilen kaynakları kısıtlayın.

  • Uzantı nesneleri varsayılan olarak etkindir. Uzantı nesnelerini içeren bir XsltArgumentList nesne yöntemine Transform geçirilirse, bunlar kullanılır.

  • XSLT stil sayfaları, diğer dosyalara ve ekli betik bloklarına başvurular içerebilir. Kötü amaçlı bir kullanıcı, yürütüldüğünde bilgisayarınızın kaynakları yetersiz olana kadar sisteminizin işlemesine neden olabilecek veri veya stil sayfaları sağlayarak bu durumdan yararlanabilir.

  • Karma güven ortamında çalışan XSLT uygulamaları stil sayfası kimlik sahtekarlığına neden olabilir. Örneğin, kötü amaçlı bir kullanıcı zararlı stil sayfası içeren bir nesneyi yükleyebilir ve bunu daha sonra yöntemini çağıran Transform ve dönüştürmeyi yürüten başka bir kullanıcıya verebilir.

Bu güvenlik sorunları, stil sayfası güvenilir bir kaynaktan gelmediği sürece ve document() güvenilmeyen bir kaynaktan nesneler, XSLT stil sayfaları veya XML kaynak verileri kabul XslCompiledTransform edilmediği sürece betik oluşturma veya işlevi etkinleştirmeyerek giderilebilir.