XmlReaderSettings.MaxCharactersInDocument Proprietà

Definizione

Ottiene o imposta un valore che indica il numero massimo consentito di caratteri in un documento XML. Un valore zero (0) indica che non sono previsti limiti per le dimensioni del documento XML. Un valore diverso da zero specifica la dimensione massima, espressa in caratteri.

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

Valore della proprietà

Numero massimo consentito di caratteri in un documento XML. Il valore predefinito è 0.

Esempio

Il codice seguente imposta questa proprietà e quindi tenta di analizzare un documento maggiore del limite. In uno scenario reale, è necessario impostare questo limite su un valore sufficientemente grande da gestire documenti validi, ma abbastanza piccolo da limitare la minaccia da documenti dannosi.

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

Questo codice genera l'output seguente:

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

Commenti

Un valore zero (0) indica che non sono previsti limiti al numero di caratteri nel documento analizzato. Un valore diverso da zero specifica il numero massimo di caratteri che è possibile analizzare.

Il numero massimo di caratteri per il documento include il numero di caratteri risultanti da entità espanse.

Se il lettore tenta di leggere un documento con dimensioni superiori a questa proprietà, verrà generata un'eccezione XmlException .

Questa proprietà consente di attenuare gli attacchi Denial of Service in cui l'utente malintenzionato invia documenti XML estremamente grandi. Limitando le dimensioni di un documento, è possibile rilevare l'attacco e recuperare in modo affidabile.

Si applica a