XmlReaderSettings.MaxCharactersInDocument Propriedade
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
O número máximo permitido de caracteres em um documento XML. O padrão é 0.
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, ).
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.
Produto | Versões |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7 |
.NET Framework | 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8 |
.NET Standard | 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1 |
UWP | 10.0 |