XmlReaderSettings.MaxCharactersInDocument Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает или задает значение, указывающее максимальное допустимое количество символов в XML-документе. Нуль (0) означает отсутствие ограничений на размер XML-документа. Значение, не равное нулю, указывает максимальное количество символов.
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
Значение свойства
Максимально допустимое количество символов в XML-документе. Значение по умолчанию равно 0.
Примеры
Следующий код задает это свойство, а затем пытается проанализировать документ, превышающий ограничение. В реальном сценарии для обработки допустимых документов это ограничение будет иметь достаточно большое значение для обработки допустимых документов, но достаточно мало, чтобы ограничить угрозу вредоносными документами.
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
Этот код выводит следующие результаты:
There is an error in XML document (MaxCharactersInDocument, ).
Комментарии
Нулевое значение (0) означает отсутствие ограничений на количество символов в проанализированном документе. Значение, отличное от нуля, указывает максимальное количество символов, которые можно проанализировать.
Максимальное число символов для документа включает количество символов, полученных из развернутых сущностей.
Если читатель пытается прочитать документ с размером, превышающим это свойство, XmlException возникает исключение.
Это свойство позволяет устранять атаки типа "отказ в обслуживании", когда злоумышленник отправляет очень большие XML-документы. Ограничивая размер документа, вы можете обнаруживать атаку и надежно восстанавливаться.