Udostępnij za pośrednictwem


XmlReaderSettings.MaxCharactersInDocument Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą maksymalną dozwoloną liczbę znaków w dokumencie XML. Wartość zero (0) oznacza brak limitów rozmiaru dokumentu XML. Wartość niezerowa określa maksymalny rozmiar w znakach.

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

Wartość właściwości

Int64

Maksymalna dozwolona liczba znaków w dokumencie XML. Wartość domyślna to 0.

Przykłady

Poniższy kod ustawia tę właściwość, a następnie próbuje przeanalizować dokument większy niż limit. W rzeczywistym scenariuszu należy ustawić ten limit na wartość wystarczająco dużą, aby obsłużyć prawidłowe dokumenty, ale wystarczająco mały, aby ograniczyć zagrożenie ze strony złośliwych dokumentów.

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  

Ten kod spowoduje wygenerowanie następujących danych wyjściowych:

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

Uwagi

Wartość zero (0) oznacza brak limitów liczby znaków w przeanalizowanym dokumencie. Wartość niezerowa określa maksymalną liczbę znaków, które można przeanalizować.

Maksymalna liczba znaków dokumentu obejmuje liczbę znaków, które wynikają z rozszerzonych jednostek.

Jeśli czytelnik próbuje odczytać dokument o rozmiarze przekraczającym tę właściwość, XmlException zostanie zgłoszony komunikat.

Ta właściwość umożliwia ograniczenie ataków typu "odmowa usługi", w których osoba atakująca przesyła bardzo duże dokumenty XML. Ograniczając rozmiar dokumentu, można wykrywać atak i niezawodnie odzyskiwać.

Dotyczy