Поделиться через


XmlLoadSettings.MaxElementDepth Свойство

Определение

Возвращает и задает ограничения глубины элемента XML-документа, загружаемого в объект DOM.

public:
 property unsigned int MaxElementDepth { unsigned int get(); void set(unsigned int value); };
uint32_t MaxElementDepth();

void MaxElementDepth(uint32_t value);
public uint MaxElementDepth { get; set; }
var uInt32 = xmlLoadSettings.maxElementDepth;
xmlLoadSettings.maxElementDepth = uInt32;
Public Property MaxElementDepth As UInteger

Значение свойства

UInt32

unsigned int

uint32_t

Значение глубины. Значение по умолчанию — 256.

Комментарии

Нулевое значение (0) означает отсутствие ограничений на глубину элемента XML-документа. Ненулевое значение указывает максимальную глубину.

Сущность считается одним уровнем вложенности. Например, если у вас есть сущность, которая ссылается на XML-документ, включающий два вложенных XML-элемента, задайте значение 3.

При клонировании объекта DOM значение этого свойства распространяется на клонированные объекты. Если размер XML-документа превышает ограничение, установленное этим свойством, при анализе документа возникает ошибка загрузки.

Это свойство помогает избежать атак типа "отказ в обслуживании", при которых отправляется документ с чрезмерной глубиной элементов. Если не ограничить глубину элемента, вы можете воспользоваться эксплойтом, в котором относительно небольшой XML-документ может привести к отказу в обслуживании. Свойство MaxElementDepth устраняет эту угрозу. Если вас беспокоит отказ в обслуживании, следует задать для этого свойства значение, которое позволяет загружать документы, но ограничивает глубину до разумного уровня.

Применяется к