System.Xml.XmlReader 設定 類別
本文提供此 API 參考文件的補充備註。
您可以使用 Create 方法來取得 XmlReader 實例。 這個方法會 XmlReaderSettings 使用 類別來指定要在建立的物件 XmlReader 中實作哪些功能。
如需要用於一致性檢查、驗證和其他常見案例之設定的相關信息,請參閱 和 Create 參考頁面的XmlReader小節。 如需預設設定的清單,請參閱建 XmlReaderSettings() 構函式。
安全性考量
使用 類別時, XmlReaderSettings 請考慮下列事項。
依預設,不會設定 ProcessInlineSchema 物件的 ProcessSchemaLocation 及 XmlReaderSettings 驗證旗標。 當設定這些旗標時,XmlResolver 物件的 XmlReaderSettings 可用於解析在 XmlReader 的執行個體文件中發現的結構描述位置。 XmlResolver如果物件是
null
,即使 已設定 和 ProcessSchemaLocation 驗證旗標,ProcessInlineSchema也不會解析架構位置。驗證期間加入的結構描述會加入新型別,並可變更要驗證之物件的驗證結果。 因此,外部結構描述應僅從受信任的來源解析。
驗證錯誤訊息可能會公開敏感性 con 帳篷模式 l 資訊。 驗證錯誤和警告訊息是使用ValidationEventHandler委派來處理,或者,如果物件未提供XmlReaderSettings事件處理程式,則會公開為 XmlSchemaValidationException 。驗證警告不會擲XmlSchemaValidationException回 。 此 con 帳篷模式 l 資訊不應在不受信任的案例中公開。 默認會隱藏驗證警告訊息,而且可以藉由設定 ReportValidationWarnings 旗標來報告。
的 SourceUriXmlSchemaValidationException 屬性會傳回造成例外狀況之架構檔案的 URI 路徑。 屬性 SourceUri 不應該在不受信任的案例中公開。
ProcessIdentityConstraints針對在檔中大部分的架構驗證、不受信任、大型 XML 檔時,建議停用旗標(預設為啟用)。
XmlReaderSettings 物件可以包含機密資訊 (如使用者認證)。 快取 XmlReaderSettings 物件,或將 XmlReaderSettings 物件從一個元件傳遞至另一元件時,請務必小心。
DTD 處理預設會停用。 如果您啟用 DTD 處理,您必須注意包括來自不受信任來源的 DTD,以及可能的阻斷服務攻擊。 XmlSecureResolver使用來限制 可以存取的資源XmlReader。
請不要接受來自不受信任來源的支援元件,如 NameTable、XmlNamespaceManager 及 XmlResolver 物件。
使用 XmlReader 之應用程式的記憶體使用量可能與剖析的 XML 文件大小相互關聯。 一種形式的阻絕服務攻擊發生於送出過多的 XML 文件進行剖析時。 您可以藉由設定 MaxCharactersInDocument 屬性來限制可剖析的檔大小,然後藉由設定 MaxCharactersFromEntities 屬性來限制擴充實體所產生的字元數目。