XmlReaderSettings.MaxCharactersInDocument Egenskap

Definition

Hämtar eller anger ett värde som anger det maximala tillåtna antalet tecken i ett XML-dokument. Ett nollvärde (0) innebär inga gränser för XML-dokumentets storlek. Ett värde som inte är noll anger den maximala storleken i tecken.

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

Egenskapsvärde

Det maximala tillåtna antalet tecken i ett XML-dokument. Standardvärdet är 0.

Exempel

Följande kod anger den här egenskapen och försöker sedan parsa ett dokument som är större än gränsen. I ett verkligt scenario skulle du ange den här gränsen till ett värde som är tillräckligt stort för att hantera giltiga dokument, men ändå tillräckligt litet för att begränsa hotet från skadliga dokument.

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

Den här koden genererar följande utdata:

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

Kommentarer

Ett nollvärde (0) innebär inga gränser för antalet tecken i det tolkade dokumentet. Ett värde som inte är noll anger det maximala antalet tecken som kan parsas.

Det maximala antalet tecken för dokumentet innehåller antalet tecken som är resultatet av expanderade entiteter.

Om läsaren försöker läsa ett dokument med en storlek som överskrider den här egenskapen genereras en XmlException .

Med den här egenskapen kan du minimera överbelastningsattacker där angriparen skickar extremt stora XML-dokument. Genom att begränsa storleken på ett dokument kan du identifiera attacken och återställa på ett tillförlitligt sätt.

Gäller för