XmlReaderSettings.MaxCharactersInDocument 屬性

定義

取得或設定一個值,表示 XML 文件中最大允許字元數。 0 (0) 值表示 XML 文件大小沒有限制。 非零值則表示最大字元大小。

public:
 property long MaxCharactersInDocument { long get(); void set(long value); };
public long MaxCharactersInDocument { get; set; }
member this.MaxCharactersInDocument : int64 with get, set
Public Property MaxCharactersInDocument As Long

屬性值

XML 文件中允許的最大字元數。 預設值是 0。

範例

以下程式碼設定此屬性,並嘗試解析超出限制的文件。 在現實世界中,你會將這個限制設為足夠大以處理有效文件,但又足夠小以限制惡意文件威脅的值。

string markup = "<Root>Content</Root>";

XmlReaderSettings settings = new XmlReaderSettings();
settings.MaxCharactersInDocument = 10;

try
{
    XmlReader reader = XmlReader.Create(new StringReader(markup), settings);
    while (reader.Read()) { }
}
catch (XmlException ex)
{
    Console.WriteLine(ex.Message);
}
Dim markup As String = "<Root>Content</Root>"

Dim settings As XmlReaderSettings = New XmlReaderSettings()
settings.MaxCharactersInDocument = 10

Try
    Dim reader As XmlReader = XmlReader.Create(New StringReader(markup), settings)
    While (reader.Read())
    End While
Catch ex As XmlException
    Console.WriteLine(ex.Message)
End Try

此程式碼會產生下列輸出:

There is an error in XML document (MaxCharactersInDocument, ).

備註

0(0) 值表示解析文件中字元數沒有限制。 非零值則指定可解析的最大字元數。

文件的最大字元數包含由擴展實體產生的字元數。

若讀者嘗試閱讀檔案大小超過此性質,將拋出 A XmlException

此特性可降低攻擊者提交極大 XML 文件時的阻斷服務攻擊。 透過限制文件大小,你可以偵測攻擊並可靠地恢復。

適用於