Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
XSLT dili, size çok fazla güç ve esneklik sağlayan zengin bir özellik kümesine sahiptir. Kullanışlı olsa da dış kaynaklar tarafından da yararlanabilecek birçok özellik içerir. XSLT'yi güvenli bir şekilde kullanmak için, XSLT kullanırken ortaya çıkan güvenlik sorunlarının türlerini ve bu riskleri azaltmak için kullanabileceğiniz temel stratejileri anlamanız gerekir.
XSLT Uzantıları
İki popüler XSLT uzantısı stil sayfası betiği ve uzantı nesneleridir. Bu uzantılar XSLT işlemcisinin kod yürütmesine olanak sağlar.
Uzantı nesneleri, XSL dönüşümlerine programlama özellikleri ekler.
Betikler,
msxsl:scriptuzantı öğesi kullanılarak stil sayfasına gömülebilir.
Uzantı Nesneleri
Uzantı nesneleri AddExtensionObject yöntemi kullanılarak eklenir. Uzantı nesnelerini desteklemek için FullTrust izin kümesi gereklidir. Bu, uzantı nesne kodu yürütürken izinlerin yükseltilmesinin gerçekleşmemesini sağlar. FullTrust izinleri olmadan AddExtensionObject yöntemini çağırmaya çalışmak, bir güvenlik istisnası atılmasına neden olur.
Stil Sayfası Betikleri
Betikler, msxsl:script uzantı öğesi kullanılarak bir stil sayfasına gömülebilir. Betik desteği, sınıfta varsayılan olarak devre dışı bırakılan isteğe bağlı bir özelliktir XslCompiledTransform . Betik özelliği XsltSettings.EnableScript olarak ayarlanarak etkinleştirilebilir ve true nesnesi XsltSettings yöntemine geçirilir.
Uyarı
Betik blokları yalnızca .NET Framework'te desteklenir. .NET Core veya .NET 5 veya üzeri sürümlerde desteklenmez .
Yönergeler
Betik çalıştırmayı yalnızca stil sayfası güvenilir bir kaynaktan geldiğinde etkinleştirin. Stil sayfasının kaynağını doğrulayamıyorsanız veya stil sayfası güvenilir bir kaynaktan gelmiyorsa, XSLT ayarlarına null değeriyle geçin.
Dış Kaynaklar
XSLT dili, işlemcinin URI başvurularını çözümlemesi gereken xsl:import, xsl:include veya document() işlevi gibi özelliklere sahiptir. sınıfı XmlResolver dış kaynakları çözümlemek için kullanılır. Dış kaynakların aşağıdaki iki durumda çözülmesi gerekebilir:
Stil sayfası derlenirken, XmlResolver
xsl:importvexsl:includeçözünürlüğü için kullanılır.Dönüştürme gerçekleştirildiğinde XmlResolver,
document()işlevini çözümlemek için kullanılır.Uyarı
document()işlevi, XslCompiledTransform sınıfında varsayılan olarak devre dışıdır. Bu özellik, XsltSettings.EnableDocumentFunction özelliğitrueolarak ayarlanarak ve XsltSettings nesnesi Load yöntemine geçirilerek etkinleştirilebilir.
Load ve Transform yöntemlerinin her biri, argümanlarından biri olarak bir XmlResolver'yi kabul ettiği aşırı yüklemeler içerir. XmlResolver belirtilmezse, kimlik bilgisi olmayan bir varsayılan XmlUrlResolver kullanılır.
Yönergeler
İşlevi document() yalnızca stil sayfası güvenilir bir kaynaktan geldiğinde etkinleştirin.
Aşağıdaki listede bir XmlResolver nesne belirtmek isteyebileceğiniz zamanlar açıklanmaktadır:
XSLT işleminin kimlik doğrulaması gerektiren bir ağ kaynağına erişmesi gerekiyorsa, gerekli kimlik bilgileriyle bir XmlResolver kullanabilirsiniz.
XSLT işleminin erişebileceği kaynakları kısıtlamak istiyorsanız, doğru izin kümesine sahip bir XmlSecureResolver kullanabilirsiniz. XmlSecureResolver Denetlemediğiniz veya güvenilmeyen bir kaynağı açmanız gerekiyorsa sınıfını kullanın.
Davranışı özelleştirmek istiyorsanız, kendi XmlResolver sınıfınızı uygulayabilir ve kaynakları çözümlemek için kullanabilirsiniz.
Dış kaynaklara erişilmediğinden emin olmak istiyorsanız,
nullbağımsız değişkeni için XmlResolver belirtebilirsiniz.