Compartilhar via


XmlReaderSettings.MaxCharactersInDocument Propriedade

Definição

Obtém ou define um valor que indica o número máximo permitido de caracteres em um documento XML. Um valor zero (0) significa que não há limite para o tamanho do documento XML. Um valor diferente de zero especifica o tamanho máximo, em caracteres.

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

Valor da propriedade

Int64

O número máximo permitido de caracteres em um documento XML. O padrão é 0.

Exemplos

O código a seguir define essa propriedade e tenta analisar um documento maior que o limite. Em um cenário do mundo real, você definiria esse limite como um valor grande o suficiente para lidar com documentos válidos, mas pequeno o suficiente para limitar a ameaça de documentos mal-intencionados.

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  

Este código produz a seguinte saída:

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

Comentários

Um valor zero (0) não significa limites para o número de caracteres no documento analisado. Um valor não zero especifica o número máximo de caracteres que podem ser analisados.

A contagem máxima de caracteres para o documento inclui a contagem de caracteres resultantes de entidades expandidas.

Se o leitor tentar ler um documento com um tamanho que exceda essa propriedade, um XmlException será lançado.

Essa propriedade permite atenuar ataques de negação de serviço em que o invasor envia documentos XML extremamente grandes. Limitando o tamanho de um documento, você pode detectar o ataque e se recuperar de forma confiável.

Aplica-se a