System.Xml.Xsl.XslCompiledTransform 類別

本文提供此 API 參考文件的補充備註。

類別 XslCompiledTransform 是支援 XSLT 1.0 語法的 XSLT 處理器。 相較於過時 XslTransform 的 類別,這是新的實作,並包含效能提升。 類別的結構 XslCompiledTransform 與類別非常類似 XslTransform 。 方法 Load 會載入並編譯樣式表單,而 Transform 方法會執行 XSLT 轉換。

預設會停用 XSLT document() 函式和內嵌腳本區塊的支援。 建立物件並將其傳遞至 Load 方法,即可啟用XsltSettings這些功能。

如需詳細資訊,請參閱 使用 XslCompiledTransform 類別從 XslTransform 類別移轉。

安全性考量

建立使用 XslCompiledTransform 類別的應用程式時,您應留意下列項目及其含意:

  • 依預設會停用 XSLT 指令碼。 僅當需要指令碼支援且在完全受信任的環境中運作時,才應啟用 XSLT 指令碼。

  • 依預設會停用 XSLT document() 函式。 如果您啟用 document() 函式,則藉由傳遞 XmlSecureResolver 物件至 Transform 方法,限制可存取的資源。

  • 依預設會啟用擴充物件。 如果將包含擴充物件的 XsltArgumentList 物件傳遞到 Transform 方法,則會加以利用。

  • XSLT 樣式表可以包含其他檔案及內嵌指令碼區塊的參考。 居心不良的使用者會利用這一點,藉由提供您資料或樣式表,使您因執行他們而導致系統持續處理,直到電腦資源不足,來進行攻擊。

  • 在混合的信任環境中執行的 XSLT 應用程式,會產生用於詐騙的樣式表。 例如,居心不良的使用者可載入含有害樣式表的物件,然後將其傳遞給另一使用者,該使用者隨後會呼叫 Transform 方法並執行轉換。

不啟用指令碼或 document() 函式 (除非樣式表來自信任的來源),不接受來自不受信任來源的 XslCompiledTransform 物件、XSLT 樣式表或 XML 來源資料,可減輕這些安全性問題。