Aracılığıyla paylaş


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 derler, Transform yöntemi ise 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üvenlikle ilgili dikkat edilmesi gerekenler

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. document() işlevini etkinleştirirseniz, erişilebilen kaynakları kısıtlamak için bir XmlSecureResolver nesnesini Transform yöntemine geçirin.

  • 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ı, veri veya stil sayfaları sağlayarak bu durumu kötüye kullanabilir. Bu dosyalar yürütüldüğünde bilgisayarınızın kaynakları yetersiz kalana kadar sisteminizin sürekli işlemesine neden olabilir.

  • Karışık güven ortamında çalışan XSLT uygulamaları stil sayfası aldatmacasına neden olabilir. Örneğin, kötü niyetli bir kullanıcı zararlı bir stil sayfası ile bir nesne yükleyebilir ve bunu başka bir kullanıcıya verir; bu kullanıcı daha sonra Transform yöntemini çağırarak dönüşümü gerçekleştirir.

Bu güvenlik sorunları, stil sayfası güvenilir bir kaynaktan gelmedikçe betik oluşturma veya işlevi etkinleştirmeyerek ve güvenilmeyen bir kaynaktan nesneler, XSLT stil sayfaları veya XML kaynak verileri kabul etmeyerek giderilebilir.