XmlReaderSettings.MaxCharactersInDocument Özellik

Tanım

XML belgesinde izin verilen en fazla karakter sayısını belirten bir değer alır veya ayarlar. Sıfır (0) değeri, XML belgesinin boyutu üzerinde sınır olmadığı anlamına gelir. Sıfır olmayan bir değer, karakter cinsinden en büyük boyutu belirtir.

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

Özellik Değeri

XML belgesinde izin verilen en fazla karakter sayısı. Varsayılan değer, 0'dur.

Örnekler

Aşağıdaki kod bu özelliği ayarlar ve ardından sınırı aşan bir belgeyi ayrıştırmaya çalışır. Gerçek bir senaryoda, bu sınırı geçerli belgeleri işleyecek kadar büyük, ancak kötü amaçlı belgelerden gelen tehdidi sınırlayabilecek kadar küçük bir değere ayarlarsınız.

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

Bu kod şu çıkışı oluşturur:

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

Açıklamalar

Sıfır (0) değeri, ayrıştırılan belgedeki karakter sayısında sınır olmadığı anlamına gelir. Sıfır olmayan bir değer, ayrıştırılabilir karakter sayısı üst sınırını belirtir.

Belgenin karakter sayısı üst sınırı, genişletilmiş varlıklardan kaynaklanan karakter sayısını içerir.

Okuyucu bu özelliği aşan bir boyuta sahip bir belgeyi okumaya çalışırsa, bir XmlException oluşturulur.

Bu özellik, saldırganın son derece büyük XML belgeleri gönderdiği hizmet reddi saldırılarını azaltmanıza olanak tanır. Belgenin boyutunu sınırlayarak saldırıyı algılayabilir ve güvenilir bir şekilde kurtarabilirsiniz.

Şunlara uygulanır