XmlReaderSettings.MaxCharactersInDocument Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu označující maximální povolený počet znaků v dokumentu XML. Nulová hodnota (0) znamená, že velikost dokumentu XML není nijak omezena. Nenulová hodnota určuje maximální velikost znaků.
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
Hodnota vlastnosti
Maximální povolený počet znaků v dokumentu XML. Výchozí hodnota je 0.
Příklady
Následující kód nastaví tuto vlastnost a pak se pokusí parsovat dokument větší, než je limit. V reálném scénáři byste tento limit nastavili na hodnotu dostatečně velkou pro zpracování platných dokumentů, ale zároveň dostatečně malou na to, aby se omezila hrozba škodlivých 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
Výsledkem tohoto kódu je následující výstup:
There is an error in XML document (MaxCharactersInDocument, ).
Poznámky
Nula (0) hodnota znamená, že počet znaků v parsovaného dokumentu není nijak omezen. Nenulová hodnota určuje maximální počet znaků, které lze analyzovat.
Maximální počet znaků v dokumentu zahrnuje počet znaků, které jsou výsledkem rozbalených entit.
Pokud se čtenář pokusí přečíst dokument s velikostí, která přesahuje tuto vlastnost, XmlException vyvolá se příkaz .
Tato vlastnost umožňuje zmírnit útoky dos, kdy útočník odesílá extrémně velké dokumenty XML. Omezením velikosti dokumentu můžete detekovat útok a spolehlivě ho obnovit.