XmlReaderSettings.MaxCharactersInDocument Propriété

Définition

Obtient ou définit une valeur correspondant au nombre maximal autorisé de caractères dans un document XML. Zéro (0) signifie que la taille du document XML n'est pas limitée. Une valeur non nulle spécifie la taille maximale, en caractères.

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

Valeur de propriété

Nombre maximal autorisé de caractères dans un document XML. La valeur par défaut est 0.

Exemples

Le code suivant définit cette propriété, puis tente d’analyser un document supérieur à la limite. Dans un scénario réel, vous définissez cette limite sur une valeur suffisamment grande pour gérer des documents valides, mais suffisamment petite pour limiter la menace de documents malveillants.

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

Ce code génère la sortie suivante :

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

Remarques

Une valeur zéro (0) signifie que le nombre de caractères dans le document analysé n’est pas limité. Une valeur autre que zéro spécifie le nombre maximal de caractères pouvant être analysés.

Le nombre maximal de caractères pour le document inclut le nombre de caractères résultant des entités développées.

Si le lecteur tente de lire un document dont la taille dépasse cette propriété, une XmlException exception est levée.

Cette propriété vous permet d’atténuer les attaques par déni de service lorsque l’attaquant envoie des documents XML extrêmement volumineux. En limitant la taille d’un document, vous pouvez détecter l’attaque et récupérer de manière fiable.

S’applique à